まさかリスト

語感良くない?

SVNの特定のフォルダを既にあるGitのレポジトリのブランチとして移行する手順

タイトルがわかりにくいですが、要するにgit-svnです。

環境

Windows 7 64bit

手順

まず、どこでもいいのでフォルダを作っておきます。

mkdir test

今回のSVNレポジトリがfile:/// でアクセスしていたのでエラーが表示されました。

解決策

d.hatena.ne.jp
d.hatena.ne.jp
別窓で下記を実行しておく。
対象のディレクトリは該当のレポジトリがあるディレクトリのところまで。

svnserve.exe -X --root \\NAS\repository

その後git-svnを実行。今回はブランチ等存在していないので、そのままで。

git svn clone svn://localhost/test

完了後、同一ディレクトリに新たにフォルダを作成。

mkdir test_sub

cloneします。

git clone test test_sub

指定したディレクトリのみ抽出。

cd test_sub
git filter-branch --subdirectory-filter [移行したいフォルダ名] -- --all

作成したいブランチ名に変更。

git branch -m [作成したいブランチ名]

確認します。

git branch -a

あとはpushするだけ。

git remote rm origin
git remote add origin [remoteURL]
git push --all

所感

かなり変則的なやり方になったが、そのフォルダの歴史も引き継げているのでどうにか出来たっぽい。
結構複雑だったが、まとめたらたいした事なかった。

参考

qiita.com

おわり。