7

我想从命令行 svn 恢复一个错误的提交。通常的建议是将提交反向合并到您的工作副本中,然后提交更改。就我而言,错误的提交是一个错误的输入svn import,它破坏了我在其他任何地方都没有签出的存储库的一部分。我可以检查受影响的目录,然后按照通常的建议进行操作,但如果我可以完全使用 URL 进行反向合并,而不需要工作副本,那会更优雅。这可能吗?

4

1 回答 1

2

不,您不能简单地通过 URL 进行合并,因为这意味着在没有看到合并结果的情况下进行合并——这是一种非常糟糕的做法。

有一种情况不会很糟糕:

  • 有人对当前版本 455 进行了可怕而巨大的更改。您可以轻松地将存储库恢复到版本 454,而无需过多担心。没有真正需要看到最终结果会是什么。

但是,想象一下:

  • 有人在修订版 455 中进行了可怕而巨大的更改。当前修订版现在是 460。Subversion 现在有五个新更改。您可以像在上一个示例中所做的那样退出更改集 455,但不会获得修订版 454。相反,您会获得修订版 454 以及修订版 456 到 460 中所做的更改。其中一些更改可能与混乱无关修订版 455。其中一些更改可能是由于修订版 455 中所做的更改。

我知道现在有一个很大的混乱需要清理,但你有这个混乱的原因是因为有人通过svn import命令提交了更改,而无需在提交之前先验证它们。这就是我不鼓励使用svn merge命令的原因。

于 2012-07-15T04:57:00.603 回答