Subversionは可能性があります各ファイルのEOL変換設定。そして、実際にGitは.gitattributesファイル( 'text'と 'eol'属性)の形でそれを持っています。 一般的なケースでは、core.autocrlfで十分ではありません。
これをfalseに設定した場合、svn:eol-style = nativeのすべてのファイルには、git-svn作業コピーで終わるLF行がありますが、これはWindowsでは期待されません。
trueに設定すると、すべての行末がLFに変換され、LFの形式(常に)でSVNに送信されます。実際
svn:eol-style=unset
は、Gitの属性(すなわち、NO変換を意味しない)、svn:eol-style=LF
--- 'EOL = LF' 属性とsvn:eol-style=CRLF
へ--- 'EOL = CRLF' 属性に '-text' に対応しなければなりません。 svn:eol-style=native
はシステムに依存するため、バージョン管理されていないeol設定で制御できるので、対応するgit属性は '!eol'です(これは.git/configのcore.eol
からのEOL設定を意味します)。
git-svnの代わりに、svn:eol-styleを個々のファイルの対応する.gitattirbutes値に変換する任意のソリューションを使用することができます。 一つの解決策は、サーバー側である:あなたのSVNリポジトリにSubGitをインストールして、ちょうどSubGitが作成する純粋なGitのインターフェースを使用します。
$ subgit install path/to/svn/repository
# Git interface with correct .gtattributes repository will appear at path/to/svn/repository/.git
# you should setup an access to it
次に、クライアントで、あなたがそれをクローンすると「CRLF」にcore.eolを設定しますWindowsでは 'lf'、他のOSでは 'lf'(デフォルト値は 'lf')です。
$ git clone <URL> working_tree
$ cd working_tree
$ git config core.eol crlf #for Windows only
その後、GitはSVNと同じように動作します。
また、SmartGitを使用することもできます。既存のgit-svnリポジトリを開いていない状態でSVNリポジトリを複製できます。その後、svn:eol-styleを.gitattributesに変換します。このケースでは追加のcore.eol設定は必要ありませんが、SmartGitは気にします。
私はこの回答で少し混乱しています。これはすべて非常に有用な情報ですが、多分あなたはその質問を誤解していると思います。私はSVNの何かに触れることはできません。私は人々にsvn:eol-styleを使用させることはできません。アイデアは誰も私がgitを使っていることを知っているということではありません。ですから、私が変える必要のある設定はgit側にあるべきです。それは問題を明確にするのに役立ちますか?ちなみに、私がgit svnでクローンしたリポジトリは、その時点では空でした。最初のdcommitの後、すべてのコンテンツはgitから取得されました。 –