3

在开发过程中,我在代码中犯了一些错误,在发现错误之前不小心犯了。我的版本 259 和 261 之间的代码更改非常重要。

有没有办法在恢复到259之后,继续前进并消灭260和261?

我正在使用 tortoisesvn 和 assembla svn。

4

3 回答 3

6

正确的方法是恢复这些提交,即添加取消 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 存储库,删除不需要的修订。

我更喜欢第一个解决方案,但这取决于您想要什么。

于 2013-05-28T06:12:16.150 回答
0

我最终将文件从“工作副本”复制到“损坏的”副本并提交。

于 2013-06-04T23:17:51.280 回答
0

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.

于 2013-06-05T00:40:31.970 回答