Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/book.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/book.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/book.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,151 @@ + + + + + + Mysqlnd Memache プラグイン + mysqlnd_memcache + + + &reftitle.intro; + + The mysqlnd memcache plugin (mysqlnd_memcache) is an PHP + extension for transparently translating SQL into requests for the + MySQL InnoDB Memcached Daemon Plugin (server plugin). It includes + experimental support for the MySQL Cluster Memcached Daemon. The server + plugin provides access to data stored inside MySQL InnoDB (respectively + MySQL Cluster NDB) tables using the Memcache protocol. + This PHP extension, which supports all PHP MySQL extensions that use + mysqlnd, will identify tables exported in + this way and will translate specific SELECT queries into Memcache requests. + + + mysqlnd_memcache data flow + + + + + + + This plugin depends on the MySQL InnoDB Memcached Daemon Plugin. It is not + provided to be used with a stand-alone Memcached. For a generic query cache + using Memcached look at the mysqlnd query + cache plugin. For direct Memcache access look at the + memcache and + memcached extensions. + + + + The MySQL native driver for PHP is a C library that ships together with + PHP as of PHP 5.3.0. It serves as a drop-in replacement for the + MySQL Client Library (libmysql/libmysqlclient). Using mysqlnd has + several advantages: no extra downloads are required because it's bundled with PHP, + it's under the PHP license, there is lower memory consumption in certain cases, and + it contains new functionality such as asynchronous queries. + + + The mysqlnd_mmemcache operates, for the most part, + transparently from a user perspective. The mysqlnd memcache + plugin supports all PHP applications, and all MySQL PHP extensions. + It does not change existing APIs. Therefore, it can easily be used with + existing PHP applications. + + + The MySQL Memcache plugins add key-value style access method for data stored + in InnoDB resp. NDB (MySQL Cluster) SQL tables through the Memcache protocol. + This type of key-value access if often faster than using SQL. + +
+ Key Features + + The key features of PECL/mysqlnd_memcache are as follows. + + + + + + Possible performance benefits + + + + + + Client-side: light-weight protocol. + + + + + Server-side: no SQL parsing, direct access to the storage. + + + + + Please, run your own benchmarks! Actual performance results are + highly dependent on setup and hardware used. + + + + + + + +
+ +
+ Limitations + + The initial version is not binary safe. Due to the way the MySQL Memcache + plugins works there are restrictions related to separators. + + + Prepared statements and asynchronous queries are not supported. Result set + meta data support is limited. + + + The mapping information for tables accessible via Memcache is not cached + in the plugin between requests but fetched from the MySQL server each time + a MySQL connection is associated with a Memcache connection. See + mysqlnd_memcache_set for details. + +
+ +
+ On the name + + The shortcut mysqlnd_memcache + stands for mysqlnd memcache plugin. + Memcache refers to support of the MySQL Memcache plugins + for InnoDB and NDB (MySQL Cluster). The plugin is not + related to the Memcached cache server. + +
+
+ + &reference.mysqlnd-memcache.quickstart; + &reference.mysqlnd-memcache.setup; + &reference.mysqlnd-memcache.constants; + &reference.mysqlnd-memcache.reference; + &reference.mysqlnd-memcache.changes; + +
+ + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/book.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/changes.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/changes.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/changes.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,61 @@ + + + + + + 変更履歴 + + この変更履歴は、アプリケーションに影響を及ぼしたり過去との互換性を崩してしまったりする変更だけをまとめたものです。 + + + 完全な変更履歴については、ソース配布物の中にある CHANGES + を参照ください。 + + +
+ PECL/mysqlnd_memcache 1.0 系 + + 1.0.0-alpha + + + + リリース日: 未定 + + + + + 目標: SQL の SELECT から MySQL Memcache プラグインへの基本的なマッピング。 + + + + + + 最初のリリースでは、基本的な SELECT 文を MySQL Memcache プラグインへのアクセスにマップします。 + これによって、パフォーマンス的なメリットが得られるでしょう。 + というのも、Memcache プロトコルを使って MySQL ストレージに直接 + キー/バリュー 形式のアクセスをするので、SQL を使うよりも高速になります。 + +
+ +
+ + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/changes.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/configure.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/configure.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/configure.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,43 @@ + + + + +
+ &reftitle.install; + + + &pecl.moved; + + + + &pecl.info; + &url.pecl.package;mysqlnd_memcache + + + + &pecl.windows.download; + + +
+ + + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/configure.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/constants.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/constants.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/constants.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,124 @@ + + + + + + &reftitle.constants; + &extension.constants; + + + MySQL Memcache Plugin 関連 + + + + + + MYSQLND_MEMCACHE_DEFAULT_REGEXP + (string) + + + + デフォルトの正規表現 (PCRE スタイル) で、これを使って SELECT + 文のマッチングをします。そして、可能なら MySQL Memcache Plugin のアクセスポイントにマップします。 + + + mysqlnd_memcache_set も使えますが、 + デフォルトではこの正規表現でパターンマッチングを行います。 + + + + + + + + その他 + + + このプラグインのバージョン番号を取得するには + MYSQLND_MEMCACHE_VERSION あるいは + MYSQLND_MEMCACHE_VERSION_ID を使います。 + MYSQLND_MEMCACHE_VERSION + は文字列形式で表したバージョンで、 + MYSQLND_MEMCACHE_VERSION_ID + が数値のバージョン番号です。この数値は 10000 のような整数になります。 + この数値から、次のようにバージョンを計算します。 + + + + + + + バージョン (の一部) + 例 + + + + + Major*10000 + 1*10000 = 10000 + + + Minor*100 + 0*100 = 0 + + + Patch + 0 = 0 + + + MYSQLND_MEMCACHE_VERSION_ID + 10000 + + + + + + + + + + MYSQLND_MEMCACHE_VERSION + (string) + + + + プラグインのバージョンを表す文字列。1.0.0-alpha など。 + + + + + + MYSQLND_MEMCACHE_VERSION_ID + (integer) + + + + プラグインのバージョン番号。10000 など。 + + + + + + + + + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/constants.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/functions/mysqlnd-memcache-get-config.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/functions/mysqlnd-memcache-get-config.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/functions/mysqlnd-memcache-get-config.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,271 @@ + + + + + + + mysqlnd_memcache_get_config + プラグインの設定情報を返す + + + + &reftitle.description; + + array + mysqlnd_memcache_get_config + mixedconnection + + + This function returns an array of all mysqlnd_memcache related configuration + information that is attached to the MySQL connection. This includes MySQL, the + Memcache object provided via mysqlnd_memcache_set, + and the table mapping configuration that was automatically collected + from the MySQL Server. + + + + + &reftitle.parameters; + + + connection + + + A handle to a MySQL Server using one of the MySQL API extensions for PHP, which are + PDO_MYSQL, mysqli or + ext/mysql. + + + + + + + + &reftitle.returnvalues; + + An array of mysqlnd_memcache configuration information on success, otherwise &false;. + + + The returned array has these elements: + + + + <function>mysqlnd_memcache_get_config</function> array structure + + + + Array Key + Description + + + + + memcached + + Instance of Memcached associated to this MySQL connection + by mysqlnd_memcache_set. You can use this to + change settings of the memcache connection, or directly by querying the + server on this connection. + + + + pattern + + The PCRE regular expression used to match the SQL query sent to the server. + Queries matching this pattern will be further analyzed to decide whether + the query can be intercepted and sent via the memcache interface or + whether the query is sent using the general MySQL protocol to the + server. The pattern is either the default pattern + (MYSQLND_MEMCACHE_DEFAULT_REGEXP) or it is set via + mysqlnd_memcache_set. + + + + mappings + + An associative array with a list of all configured containers as they + were discovered by this plugin. The key for these elements is the name + of the container in the MySQL configuration. The value is described + below. The contents of this field is created by querying the MySQL + Server during association to MySQL and a memcache connection using + mysqlnd_memcache_set. + + + + mapping_query + An SQL query used during + mysqlnd_memcache_set + to identify the available containers and mappings. The result of that + query is provided in the mappings element. + + + + +
+ + Mapping entry structure + + + + Array Key + Description + + + + + prefix + + A prefix used while accessing data via memcache. With the MySQL InnoDB + Memcache Deamon plugin, this usually begins with @@ and ends with a + configurable separator. This prefix is placed in front of the key value + while using the memcache protocol. + + + + schema_name + + Name of the schema (database) which contains the table being accessed. + + + + table_name + + Name of the table which contains the data accessible via memcache + protocol. + + + + id_field_name + + Name of the database field (column) with the id used as key when + accessing the table via memcache. Often this is the database field + having a primary key. + + + + separator + + The separator used to split the different field values. This is needed as + memcache only provides access to a single value while MySQL can map + multiple columns to this value. + + + The separator, which can be set in the MySQL Server configuration, + should not be part of any value retrieved via memcache because proper + mapping can't be guaranteed. + + + + + + fields + + An array with the name of all fields available for this mapping. + + + + +
+
+
+ + + &reftitle.examples; + + + <function>mysqlnd_memcache_get_config</function> example + +addServer("host", 11211); +mysqlnd_memcache_set($mysqli, $memc); + +var_dump(mysqlnd_memcache_get_config($mysqli)); +?> +]]> + + &example.outputs; + + + object(Memcached)#2 (0) { + } + ["pattern"]=> + string(125) "/^\s*SELECT\s*(.+?)\s*FROM\s*`?([a-z0-9_]+)`?\s*WHERE\s*`?([a-z0-9_]+)`?\s*=\s*(?(?=["'])["']([^"']*)["']|([0-9e\.]*))\s*$/is" + ["mappings"]=> + array(1) { + ["mymem_test"]=> + array(6) { + ["prefix"]=> + string(13) "@@mymem_test." + ["schema_name"]=> + string(4) "test" + ["table_name"]=> + string(10) "mymem_test" + ["id_field_name"]=> + string(2) "id" + ["separator"]=> + string(1) "|" + ["fields"]=> + array(3) { + [0]=> + string(2) "f1" + [1]=> + string(2) "f2" + [2]=> + string(2) "f3" + } + } + } + ["mapping_query"]=> + string(209) " SELECT c.name, + CONCAT('@@', c.name, (SELECT value FROM innodb_memcache.config_options WHERE name = 'table_map_delimiter')) AS key_prefix, + c.db_schema, + c.db_table, + c.key_columns, + c.value_columns, + (SELECT value FROM innodb_memcache.config_options WHERE name = 'separator') AS sep + FROM innodb_memcache.containers c" +} +]]> + + + + + + + &reftitle.seealso; + + + + mysqlnd_memcache_set + + + + + +
+ + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/functions/mysqlnd-memcache-get-config.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/functions/mysqlnd-memcache-set.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/functions/mysqlnd-memcache-set.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/functions/mysqlnd-memcache-set.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,175 @@ + + + + + + + mysqlnd_memcache_set + MySQL の接続を Memcache の接続と関連づける + + + + &reftitle.description; + + bool + mysqlnd_memcache_set + mixedmysql_connection + Memcachedmemcache_connection + stringpattern + callbackcallback + + + Associate mysql_connection with + memcache_connection using pattern + as a PCRE regular expression, and callback as a notification + callback or to unset the association of mysql_connection. + + + While associating a MySQL connection with a Memcache connection, this function + will query the MySQL Server for its configuration. It will automatically + detect whether the server is configured to use the InnoDB Memcache Daemon + Plugin or MySQL Cluster NDB Memcache support. It will also query the server + to automatically identify exported tables and other configuration options. + The results of this automatic configuration can be retrieved using + mysqlnd_memcache_get_config. + + + + + &reftitle.parameters; + + + mysql_connection + + + A handle to a MySQL Server using one of the MySQL API extensions for PHP, which are + PDO_MYSQL, mysqli or + ext/mysql. + + + + + memcache_connection + + + A Memcached instance with a + connection to the MySQL Memcache Daemon plugin. If this parameter + is omitted, then mysql_connection will be unassociated + from any memcache connection. And if a previous association exists, then it will be + replaced. + + + + + pattern + + + A regular expression in Perl Compatible + Regular Expression syntax used to identify potential + Memcache-queries. The query should have three sub patterns. The + first subpattern contains the requested field list, the second the name + of the ID column from the query and the third the requested value. If + this parameter is omitted or os set to &null;, then a default + pattern will be used. + + + + + callback + + + A callback which will be used whenever a query is being sent to + MySQL. The callback will receive a single &boolean; parameter + telling if a query was sent via Memcache. + + + + + + + + &reftitle.returnvalues; + + &true; if the association or disassociation is successful, otherwise &false; if there + is an error. + + + + + &reftitle.examples; + + + + <function>mysqlnd_memcache_set</function> example with + <function>var_dump</function> as a simple debugging callback. + + +addServer("host", 11211); +mysqlnd_memcache_set($mysqli, $memc, NULL, 'var_dump'); + +/* This query will be intercepted and executed via Memcache protocol */ +echo "Sending query for id via Memcache: "; +$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1"); + +/* f1 is not configured as valid key field, this won't be sent via Memcache */ +echo "Sending query for f1 via Memcache: "; +$mysqli->query("SELECT id FROM test WHERE f1 = 1"); + +mysqlnd_memcache_set($mysqli); + +/* Now the regular MySQL protocol will be used */ +echo "var_dump won't be invoked: "; +$mysqli->query("SELECT f1, f2, f3 WHERE id = 1"); + +?> +]]> + + &example.outputs; + + + + + + + + + &reftitle.seealso; + + + + mysqlnd_memcache_get_config + + + + + + + + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/functions/mysqlnd-memcache-set.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/ini.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/ini.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/ini.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,81 @@ + + + + +
+ &reftitle.runtime; + &extension.runtime; + + + Mysqlnd_memcache &ConfigureOptions; + + + + &Name; + &Default; + &Changeable; + &Changelog; + + + + + mysqlnd_memcache.enable + 1 + PHP_INI_SYSTEM + 1.0.0 以降で利用可能 + + + +
+
+ + &ini.descriptions.title; + + + + + + + mysqlnd_memcache.enable + integer + + + + プラグインを有効あるいは無効にします。無効にした場合は、この拡張モジュールを + mysqlnd に組み込んで + mysqlnd C API の呼び出しのプロキシとすることがなくなります。 + + + このオプションを使う主な場面は、開発者がこの拡張モジュールを静的に PHP へ組み込む場合です。 + 一般のユーザーはこの拡張モジュールを共有オブジェクトとしてビルドすることをおすすめします。 + そして、不要になれば完全にアンロードします。 + + + + + + + + +
+ + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/ini.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/quickstart.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/quickstart.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/quickstart.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,183 @@ + + + + + クイックスタートとサンプル集 + + mysqlnd memcache プラグインは簡単に使えます。 + このクイックスタートでは、よくある使いかたの例を示すとともに、 + 使い始めるための実践的なアドバイスをします。 + started. + + + このクイックスタートだけでなく、リファレンスのドキュメントも読むようにしましょう。 + クイックスタートでは、理論的な概念や制約などについては説明しません。 + 直接扱うのではなく、リファレンスのページへのリンクを示します。 + このクイックスタートから読み始めてもまったく問題はありませんが、 + 実際にミッションクリティカルな環境で使い始める前には + リファレンスで背景情報をしっかり読んでおくことをおすすめします。 + +
+ セットアップ + + The plugin is implemented as a PHP extension. See also the + installation instructions to + install this extension. + + + Compile or configure the PHP MySQL extension (API) (mysqli, + PDO_MYSQL, mysql). + That extension must use the mysqlnd library as + because mysqlnd_memcache is a plugin for the mysqlnd library. For additional information, + refer to the mysqlnd_memcache installation instructions. + + + Then, load this extension into PHP and activate the plugin in the PHP configuration + file using the PHP configuration directive named + mysqlnd_memcache.enable. + + + + プラグインを有効にする (php.ini) + + + + + + + Follow the instructions given in the MySQL + Reference Manual on installing the Memcache plugins for the MySQL server. Activate + the plugins and configure Memcache access for SQL tables. + + + The examples in this quickguide assume that the following table exists, and that + Memcache is configured with access to it. + + + + クイックスタートで使うテーブルの SQL + + + + + +
+
+ 使いかた + + After associating a MySQL connection with a Memcache connection using + mysqnd_memcache_set the plugin attempts to transparently + replace SQL SELECT + statements by a memcache access. For that purpose the plugin monitors + all SQL statements executed and tries to match the statement string + against MYSQLND_MEMCACHE_DEFAULT_REGEXP. + In case of a match, the mysqlnd memcache plugin checks whether the + SELECT is accessing only columns of a mapped table and + the WHERE clause is limited to a single key lookup. + + + In case of the example SQL table, the plugin will use the Memcache interface + of the MySQL server to fetch results for a SQL query like + SELECT f1, f2, f3 WHERE id = n. + + + + + 基本的な例 + + +addServer("host", 11211); +mysqlnd_memcache_set($mysqli, $memc); + +/* + This is a query which queries table test using id as key in the WHERE part + and is accessing fields f1, f2 and f3. Therefore, mysqlnd_memcache + will intercept it and route it via memcache. +*/ +$result = $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1"); +while ($row = $result->fetch_row()) { + print_r($row); +} + +/* + This is a query which queries table test but using f1 in the WHERE clause. + Therefore, mysqlnd_memcache can't intercept it. This will be executed + using the MySQL protocol +*/ +$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'"); +while ($row = $result->fetch_row()) { + print_r($row); +} +?> +]]> + + &example.outputs; + + Hello + [f2] => World + [f3] => ! +) +array( + [id] => 2 +) +]]> + + + + +
+ +
+ Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/quickstart.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/reference.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/reference.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/reference.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,31 @@ + + + + + + Mysqlnd_memcache &Functions; + + &reference.mysqlnd-memcache.entities.functions; + + + + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/reference.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native Added: phpdoc/ja/trunk/reference/mysqlnd_memcache/setup.xml =================================================================== --- phpdoc/ja/trunk/reference/mysqlnd_memcache/setup.xml (rev 0) +++ phpdoc/ja/trunk/reference/mysqlnd_memcache/setup.xml 2012-12-23 06:31:16 UTC (rev 328866) @@ -0,0 +1,59 @@ + + + + + + &reftitle.setup; + +
+ &reftitle.required; + + この拡張モジュールは PHP 5.4+ 用であり、PHP 5.4.4 以降が必要です。それ以外に必要な拡張モジュールは、 + PCRE (デフォルトで有効になります) と + memcached (バージョン 2.0.x) です。 + + + mysqlnd_memcache プラグインは + すべての PHP アプリケーションに対応し、すべての PHP 用 MySQL 拡張 + (mysqli、 + mysql、 + PDO_MYSQL) + で使えます。これらの MySQL 拡張モジュールをコンパイルするときに、 + mysqlnd のサポートつきで configure しなければいけません。 + + + InnoDB のテーブルにアクセスするには、 + MySQL Server 5.6.6 以降のバージョンを使って InnoDB Memcache + Daemon Plugin を有効にしておく必要があります。 + + + MySQL Cluster NDB のテーブルにアクセスするには、 + MySQL Cluster 7.2 以降のバージョンで NDB Memcache API ノードを有効にしておく必要があります。 + +
+ + &reference.mysqlnd-memcache.configure; + &reference.mysqlnd-memcache.ini; + +
+ + Property changes on: phpdoc/ja/trunk/reference/mysqlnd_memcache/setup.xml ___________________________________________________________________ Added: svn:keywords + Id Rev Revision Date LastChangedDate LastChangedRevision Author LastChangedBy HeadURL URL Added: svn:eol-style + native