我用svn merge -r COMMITTED:PREV .
恢复了我最后一次意外的SVN提交。现在看起来文件已经好了,但我仍然在svn log
看到了意外提交。
好吗?我可以从历史记录中删除我的最后一次提交吗?
答案 0 :(得分:3)
反向合并不会及时返回并删除所有错误提交的痕迹。 它只是将您在该修订版中所做的更改以相反的顺序应用于本地计算机上的工作副本。
合并后,您可以在工作副本上运行svn status
来查看本地更改。 请注意,SVN服务器上尚未更改任何内容。验证更改后,可以使用svn commit
提交更改。此提交将不替换您的错误提交;它只是另一个普通的香草提交 1 。此提交获取自己的日志消息和修订号,您可以在提交成功后运行svn log
来验证。您现在将看到您的错误提交和修复错误的提交。
是否可以完全删除错误的提交,就好像它从未存在过一样? Technically, yes,但不是svn merge
而不是SVN服务器上没有管理员权限。在99.99%的案例中,这将是比它的价值更多的努力。
同样明白SVN的历史并不是真正意图被修改(毕竟,历史,你不想成为那些讨厌的修正主义历史学家之一,现在你呢? )。像SVN这样的版本控制系统故意难以改变历史记录,因为它们专门用于跟踪任何人对回购的所有变化。请参阅程序员SE上的this answer相关问题(如何编辑以前的提交消息)以及讨论为什么更改此历史记录的评论可能不好。