使用git-svn将svn分支合并回trunk和trunk回到分支

Kzq*_*qai 11 svn git branch reintegration

所以我正在使用git并与svn repo进行交互.

我有一个svn TRUNK,看起来像这样:

A-B-C-D
Run Code Online (Sandbox Code Playgroud)

还有一个svn bug_fixes分支,它在提交B或C处分支:

 -c-d-e-f-g-h-i
Run Code Online (Sandbox Code Playgroud)

现在我需要将我的svn分支中的cdefghi提交返回到主分支.

我知道我可以做一个被压扁的提交,让我们称之为壁球SQUASH(它将包含cdefghi),但后来似乎我必须杀死bug_fixes分支并启动一个新的分支以干净地继续.

这里:http://blog.red-bean.com/sussman/?p = 92他们建议:

checkout 分支.

merge 主人的变化进入分支.

Checkout 大师.

merge --reintegrate 分支机构对主人的改变.

继续发展.

不幸的是,git-svn似乎没有认识到svn的任何"merge --reintegrate"命令.

那么我如何干净地使分支和master拥有所有提交,以便使用git-svn的命令继续开发两者?

Gre*_*con 7

该的注意事项部分git-svn文件警告

为简单起见,用一个能力较少的系统(SVN)互操作的缘故,建议所有的git svn用户clone,fetchdcommit直接从SVN服务器,并避免所有git clone/ pull/ merge/ pushgit仓库和分支之间的操作.

作者提供了一个建议:

在git分支和用户之间交换代码的推荐方法是git format-patchgit am/或仅仅dcommit是SVN存储库.

适应您的情况

git format-patch --stdout c^..i >my.patch
git reset --hard trunk
git am <my.patch
Run Code Online (Sandbox Code Playgroud)

where ci是历史记录中提交的适当标识符.