在SVN中撤消不需要的合并

Ped*_*rez 4 svn tortoisesvn merge svn-merge

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

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

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

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

Dav*_* W. 6

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

$ svn revert -R .   #Remove all changes made
$ svn update        #and make sure up to date
$ svn merge -r77691:77088 .
Run Code Online (Sandbox Code Playgroud)

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

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

$ svn merge -c -77691 .
$ svn merge -c -77690 .
$ svn merge -c -77689 .
Run Code Online (Sandbox Code Playgroud)


Mic*_*cha 5

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