SubversionからGitに移行するときの注意点
自分へのメモです。SubversionからGitに移行するときの注意点。
git-svn(1) にしたがって、Subversion から Git に移行できるのですが、
git svn clone Subversionのリポジトリ
Gitは色々なツールが、リポジトリ内は CR+LF ではなく、LF であることを期待しているみたいなので、上の方法で Subversion 内が CR+LF だと、Gitのリポジトリ内も CR+LF になってしまい、トラブルが起きます。
なので、上の方法で移行した後、gitattributes(5) の When text=auto normalization is enabled in an existing repository あたりに書かれている、
$ echo "* text=auto" >>.gitattributes $ rm .git/index # Remove the index to force git to $ git reset # re-scan the working directory $ git status # Show files that will be normalized $ git add -u $ git add .gitattributes $ git commit -m "Introduce end-of-line normalization"
でリポジトリ内を全て LF で統一すると、良いみたいです。Windows では普通にインストールすると有効になっている事が多いですが、.git/config の autocrlf が true になっていると、リポジトリ内は LF でも、取り出すと CR+LF に変換されます。
あまり確証はないのですが、rm .git/index したら、.git/tortoisegit.* も消した方がいいと思います。TortoiseGit の Show log で復活します。
なんか、一部の Windows 用の Git ツールが autocrlf を無視して CR+LF でコミットしていくみたいなので、コミットなどをする時は、msysgit (Git for Windows) で必ず行うみたいなルールにしておいた方がいい感じがします。改行コードがおかしくなった時は、上の方法で直ります。
また、日本語ファイル名対応版は、UTF-8ファイル名対応版 Git for Windows にあります。