在SVN中撤消不需要的合并

时间:2013-07-03 16:29:55

标签: svn merge tortoisesvn svn-merge

我们有一个运行SVN的存储库。在某个时刻,为了添加一个功能(让我们称之为'分支'),我们从主干创建了一个开发分支(让我们称之为'trunk')。

我们一直在做我们的工作并且已经进入分支机构,偶尔,我们将在主干中进行的更改合并到分支机构中,以使其与主干保持最新状态。

在某些时候,来自主干的修订版75051到77691被合并到分支中,并且提交继续在分支上进行,在分支中提交新代码。

但是现在我们希望分支最新的主干版本只能达到修订版77089,也就是说,我们想要撤消由于我们合并而导致分支中的更改,但只是由于rev77089-77691而发生的更改,不影响分支机构的所有工作。有什么建议可以恢复或撤消因主干中的rev77089-77691而导致的分支变化?非常感谢你。

2 个答案:

答案 0 :(得分:5)

您只需在svn merge命令中使用反向范围即可撤消更改:

$ svn revert -R .   #Remove all changes made
$ svn update        #and make sure up to date
$ svn merge -r77691:77088 .

这将从您的工作目录中删除从77089到77691的更改。

或者您可以一次撤消合并一个修订:

$ svn merge -c -77691 .
$ svn merge -c -77690 .
$ svn merge -c -77689 .

答案 1 :(得分:2)

除了David W.的回答(+1):如果您使用TortoiseSVN,您可以打开branch的日志(上下文菜单:显示日志),标记您不再网络的所有修订并进行恢复(上下文菜单:还原此版本的更改)。