2016-10-03 72 views
-1

我想撤销一个svn修订版,它不是日志中的最新版本。修订版本中有许多文件更改,其中一个已被更新的更改覆盖,而其他所有更改都是最新的。如何撤销不是最新的svn修订版?

所以这是一个中等难度的场景。不仅是我想要取出的修订不在日志的顶部,而且还包含自其他用户更新以来的文件更改。

您能否建议如何以优雅的方式执行这种回复,意味着涉及的最简单的一系列步骤?

+0

阅读文档:http://svnbook.red-bean.com/en/1.8/svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.undo – bahrep

回答

0

您将需要创建并应用反向补丁。例如,以下一系列命令会恢复修订版925中引入的更改。冲突可能会照常发生,您将不得不通过编辑补丁文件来解决冲突。

svn diff -r 925:924 > rev.patch # diff bad revision with previous one 
svn patch --dry-run rev.patch  # check for conflicts 
svn patch rev.patch    # actual patching 
svn commit 
+0

什么? DIFF?补丁?有一个用于撤消更改的命令:http://svnbook.red-bean.com/en/1.8/svn.branchmerge.basicmerging.html#svn.branchmerge.basicmerging.undo – bahrep

0

你可以只运行svn merge ^/MyProject/trunk . -c-123恢复修订。不要忘记提交此更改并提供日志消息。

阅读SVNBook | Undoing changes