如果我不能“重新整合”,我怎样才能“强行”分支在树干上?

时间:2010-05-03 17:29:31

标签: svn merge branch

我们从主干创建了一个分支,在主干上进行了重大的重构。同时,主干进行了一些修改,并进行了一些修复。我们希望在分支上进行这些更改,因此我们不希望“赶上”将主干合并到分支,因为我们不希望混合旧代码和新代码。但如果没有这个,我就无法将分支重新整合回主干。

有没有办法将树枝“按原样”强行放在树干上?

(我考虑的一个想法是将主干撤消(“反向合并”)回到分支开始的修订版,然后将它合并到分支上是安全的 - 什么都不应该发生。然后我可以重新集成。你觉得吗?)

2 个答案:

答案 0 :(得分:6)

假设您丢失了这些更改,那么这是一个可以接受的解决方案,尽管您可能只想考虑将当前中继重命名为分支并将分支重命名为trunk:

svn move https://path/to/repo/trunk https://path/repo/branches/newbranchname
svn move https://path/to/repo/branches/refactoring https://path/to/repo/trunk

虽然,你真的确定你不想从主干引入变化吗?您可能需要非常仔细地考虑这一点。即使您已经进行了大量的重构,如果在主干上进行了可用的工作,您仍然可能需要非常仔细地查看它,以便所取得的进展不会浪费。

答案 1 :(得分:3)

您可以使用,正如您所提到的反向合并。检查主干

svn merge -rHEAD:RevisionTheBranchWasCreated ^/trunk

这将撤消创建分支后所做的所有更改。之后,合并应该没有任何问题。

更新:^/trunk仅适用于Linux。在Windows上,您需要^^/trunk代替。