リポジトリ全体のgit-svnチェックアウトがあります(標準的な方法で初期化されてgit svn init -t tags -b branches -T trunk $repo_url
から、git svn fetch
edになります)。手動でsvn copy $repo_url/branches/branch1 $repo_url/branches/branch2
。次に、を実行しgit svn fetch
、git checkout -b local-branch2 branch2
にいくつかのコミットを行いbranch2
、dcommit
それらをSVNリポジトリに戻し、での作業を完了しましたbranch2
。(なぜブランチをブランチするのですか?gitでローカルにこのブランチをハックしたかったのですが、それでもSVNにコミットして、作業中に数人の同僚から助けを得ました)。
私が行っていないのは、branch2
作業をにマージして戻すことbranch1
です。もし私がそうならgit checkout -b local-branch1 branch1
、それは単に私のポインタをどこにあるかgit merge branch2
へと早送りします。local-branch1
branch2
代わりに、ブランチ1を開始してから行われたすべてのコミットをgitで再生して、各コミットをbranch2
SVNリポジトリにコミットできるようにします。これを行う方法があるようですが、私はそれを考えることができません。たぶんgit rebase
、またはgit cherry-pick
で行われた各コミットのbranch2
?(後者は少し退屈ですが)。2つのURLをsvnマージしたくないのは、それが大きな打撃となるからです。
アイデア?これのどの部分にももっと説明が必要ですか?