在开发过程中,我在代码中犯了一些错误,并在发现错误之前意外地犯了错误。我的修订版259和261之间的代码更改非常重要。
有没有办法在恢复到259后继续前进并将260和261消灭?
我正在使用tortoisesvn和assembla svn。
答案 0 :(得分:6)
正确的方法是恢复这些提交,即添加新的提交,取消260和261引入的修改:请参阅“SVN Revert Trunk, remove a revision as if it never existed?”
svn merge -r [current_version]:[previous_version] [repository_url]
svn commit -m “Reverting previous commit and going back to revision [previous_version].”
如果你正在使用TortoiseSVN,你可以只显示日志,选择提交,然后在上下文菜单中选择“从此版本中恢复更改”。
另请参阅“SVN - delete a revision, or make an older revision the head”。
但另一方面,更激进的是,dump and reload the SVN repo,删除不需要的修订。
我更喜欢第一种解决方案,但这取决于你想要的是什么。
答案 1 :(得分:0)
我将文件从“工作副本”复制到“破损”副本并进行评估。
答案 2 :(得分:0)
VonC得到了它。您使用svn merge
还原修订版。但是,我会使用-c
标志。假设您在修订版1234中犯了一个错误,请转到您的工作目录并说:
$ svn merge -c -1234 .
这将从您当前的工作目录中删除修订版1234。这与:
相同$ svn merge -r1235:1234 .
但是,-c
语法更容易理解。使用svn log
查找出错的修订版,并将其还原。即使其他人提交了您之后的修订版本,这将非常有效 - 只要这些更改都不依赖于您的更改。