git-svn 使用例
問題
git-svnでgitに移行しようと思います。
1つのSVNリポジトリの中に、複数のプロジェクトが入っている構成では、どうするとよいでしょうか。
答え
特定のパス以下を取り出すことが可能。
以下では、svn://svnserver.example.com/aaaproject/xxx を1つのgitリポジトリに移行しようとしている。
1、場所を作る
mkdir aaaproject cd aaaproject
2、gitリポジトリを作る
git svn init -s --prefix=svn/ svn://svnserver.example.com/(などのURL)
3、構成が変則的であれば設定で調整
vim .git/config
編集前は以下のようになっている。標準的なSVNリポジトリの構成に合わせてある。
[core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [svn-remote "svn"] url = svn://svnserver.example.com fetch = trunk:refs/remotes/svn/trunk branches = branches/*:refs/remotes/svn/* tags = tags/*:refs/remotes/svn/tags/*
fetchを構成に応じて調整。trunk 1本だけであれば以下でよい。
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[svn-remote "svn"]
url = svn://svnserver.example.com
fetch = aaaproject/xxx:refs/remotes/svn/trunk
4、SVNリポジトリからコミットを取得
git svn fetch
5、リモートリポジトリがあるなら、追加、push
git remote add origin ssh://~~~ git push -u origin all
コメント