在开发过程中,我在代码中犯了一些错误,在发现错误之前不小心犯了。我的版本 259 和 261 之间的代码更改非常重要。
有没有办法在恢复到259之后,继续前进并消灭260和261?
我正在使用 tortoisesvn 和 assembla svn。
在开发过程中,我在代码中犯了一些错误,在发现错误之前不小心犯了。我的版本 259 和 261 之间的代码更改非常重要。
有没有办法在恢复到259之后,继续前进并消灭260和261?
我正在使用 tortoisesvn 和 assembla svn。
正确的方法是恢复这些提交,即添加取消 260 和 261 引入的修改的新提交:参见“ SVN Revert Trunk, remove a revision as if it never exist? ”
svn merge -r [current_version]:[previous_version] [repository_url]
svn commit -m “Reverting previous commit and going back to revision [previous_version].”
如果你使用 TortoiseSVN,你可以只显示日志,选择提交,然后在上下文菜单中选择“Revert changes from this revision”。
另请参阅“ SVN - 删除修订,或将较旧的修订作为标题”。
但另一种更激进的方法是转储并重新加载 SVN 存储库,删除不需要的修订。
我更喜欢第一个解决方案,但这取决于您想要什么。
我最终将文件从“工作副本”复制到“损坏的”副本并提交。
VonC明白了。您使用svn merge
来恢复您的修订。但是,我会使用-c
国旗。假设您在修订版 1234 中犯了一个错误,请转到您的工作目录并说:
$ svn merge -c -1234 .
这将从您当前的工作目录中删除修订版 1234。这与以下内容相同:
$ svn merge -r1235:1234 .
but, the -c
syntax is easier to understand. Use svn log
to find the revisions where you made a mistake, and revert those. This will pretty much work even if other people have submitted revisions after yours -- as long as none of those changes are dependent upon your changes.