Git svn initを使用してgitでsvn repoを追跡できることは知っていますが、これは新しいリポジトリを作成したい場合のためのものです。
私の状況は、現在既存のgitリポジトリがあり、現在のgitリポジトリのリモートブランチにして、svnリポジトリのトランクを追跡したいというものです。
助言がありますか?
昨夜検索したところ、ようやく答えが見つかりました。
http://i-nz.net/2009/01/15/selective-import-of-svn-branches-into-a-gitgit-svn-repository/
既存のgitリポジトリにsvnブランチを追加するには、実際に.git/configファイルにアクセスして手動で編集する必要があるようです。したがって、これらの指示に従って、各ブランチのエントリを追加する必要があります。
1).git/configに新しいブランチを定義します。
[svn-remote "release-branch"]
url = svn+ssh://[email protected]/source/branches/mono-2-2/mcs
fetch = :refs/remotes/git-svn-release-branch
2)SVNブランチをインポートします。 SVN_BRANCHED_REVISIONは、SVNで分岐が発生したときのリビジョンです。
[~]$ git svn fetch release-branch -r SVN_BRANCHED_REVISION
3)ローカルGitブランチをリモートブランチに接続します。
[~]$ git branch --track release git-svn-release-branch
5)チェックアウトと更新
[~]$ git checkout release
[~]$ git svn rebase
この質問の回答( https://stackoverflow.com/a/840411 および https://stackoverflow.com/a/7592152 )は、Git以降は機能しませんv1.8.3.2( https://stackoverflow.com/a/19833311 )。代わりにこれを行うことができます:
1).git/configに新しいブランチを定義します。
[svn-remote "release-branch"]
url = svn+ssh://[email protected]/source/branches/mono-2-2/mcs
fetch = :refs/remotes/git-svn-release-branch
2)SVNブランチをインポートします。 SVN_BRANCHED_REVISIONは、SVNで分岐が発生したときのリビジョンです。
$ git svn fetch release-branch -r SVN_BRANCHED_REVISION
3)ブランチを作成し、ローカルGitブランチをリモートブランチにフックします。
$ git checkout -b release refs/remotes/git-svn-release-branch
5)更新
$ git svn rebase
SVN_BRANCHED_REVISIONを見つけるには、次のようにします。
$ svn log --stop-on-copy PATH_TO_BRANCH
これは実際にはgit svn initが行うことです-他のgit svnコマンドは単に物事をマージするなどしています。git svn initやgit svn cloneでクローンされたSVNリポジトリのレイアウトをコピーすることができます。ローカルブランチにプルしたり、フェッチしたりします。 git svnのmanページを少し時間をとってみてください。何かをまとめるのにそれほど問題はないはずです。もしそうなら、freenode上の#gitは良いリソースです。だから、これはあまり問題なくできるはずですが、私はそれをすべて行う方法を正確に知りません。