SOFTELメモ

Softel Inc.

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

関連するメモ

コメント