我使用TortoiseSVN向我的SVN服务器提交了一些错误的代码更改。
现在头版本是155,但我想删除最后两个版本,这样头版本就是153。换句话说,我想“撤销”我的最后两个提交。
如何使用TortoiseSVN完成此操作?TortoiseSVN菜单中是否存在一个选项,或者我是否需要使用命令行?
发布于 2012-12-05 08:26:32
如果打开SVN Log,则可以右键单击某个修订,然后使用选项Revert to this revision或Revert changes from this revision。这两个选项都将更新您的工作副本(然后可以提交)。
TortoiseSVN中没有删除修订的选项。
发布于 2012-12-05 08:33:31
在更新后的工作副本的根目录下,您应该使用以下命令:
svn merge -rHEAD:153 .这将“撤消”您对修订版本153所做的所有更改,以便您的修订版本156将与修订版本153相似。
之后别忘了提交!
您可以在TortoiseSvn中执行相同的操作:打开“显示日志”界面,选择版本153,右键单击它,然后选择“从该版本恢复更改”。
发布于 2012-12-05 08:32:38
不幸的是,对于TortoiseSVN (或任何其他SVN客户端)来说,无法真正删除修订,因为它会从历史记录中完全消失。更改SVN存储库的历史记录很困难,并且需要在服务器上进行操作-请参阅此问题:Why isn't obliterate an essential feature of Subversion?
但是,您可以通过创建一个新的检入并将其更改回来,来“撤消”检入。这通常是通过一种称为“反向合并”的技术来完成的。例如,参见Retract accidental checkin
https://stackoverflow.com/questions/13714310
复制相似问题