我们有一个运行SVN的存储库。在某个时刻,为了添加一个功能(让我们称之为'分支'),我们从主干创建了一个开发分支(让我们称之为'trunk')。
我们一直在做我们的工作并且已经进入分支机构,偶尔,我们将在主干中进行的更改合并到分支机构中,以使其与主干保持最新状态。
在某些时候,来自主干的修订版75051到77691被合并到分支中,并且提交继续在分支上进行,在分支中提交新代码。
但是现在我们希望分支最新的主干版本只能达到修订版77089,也就是说,我们想要撤消由于我们合并而导致分支中的更改,但只是由于rev77089-77691而发生的更改,不影响分支机构的所有工作。有什么建议可以恢复或撤消因主干中的rev77089-77691而导致的分支变化?非常感谢你。
答案 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
的日志(上下文菜单:显示日志),标记您不再网络的所有修订并进行恢复(上下文菜单:还原此版本的更改)。