git-svn合并2个svn分支

dim*_*mba 6 svn git merge git-svn

我正在使用svn.我有两个分支,并且两个分支都进行了很多更改.除了其中一个分支之外,很多文件都被重命名,所以现在svn无法帮助我合并这些文件中的更改(知道svn限制).

  1. 是否可以使用git-svn来执行分支的合并?
  2. git-svn会处理重命名的文件吗?

谢谢

Von*_*onC 7

git merge 应该能够检测(直到某一点)重命名.

recursive

这只能使用3向合并算法解析两个磁头.
此外,这可以检测和处理涉及重命名的合并.
这是拉动或合并一个分支时的默认合并策略.

但是git-svn只能从/向SVN导入/导出,而不能进行合并.
合并是棘手的:

CAVEATS

为了简化并与功能较少的系统(SVN)进行互操作,建议所有git svn用户直接从SVN服务器克隆,获取和重新提交,并避免git存储库之间的所有git clone/pull/merge/push操作.分支机构.
在git分支和用户之间交换代码的推荐方法是git format-patch和git am,或者只是'dcommit'ing到SVN存储库.

不建议在您计划提交的分支上运行git merge或git pull.Subversion不以任何合理或有用的方式表示合并; 因此使用Subversion的用户无法看到您所做的任何合并.此外,如果您从作为SVN分支镜像的git分支合并或拉出,则dcommit可能会提交到错误的分支.

如果你做了合并,请注意以下规则:git svn dcommit将尝试在名为的SVN提交之上提交

git log --grep=^git-svn-id: --first-parent -1
Run Code Online (Sandbox Code Playgroud)

因此,您必须确保要提交的分支的最新提交是合并的第一个父级.否则会发生混乱,特别是如果第一个父级是同一SVN分支上的较旧提交.