subversion:没有工作副本的合并

Isa*_*and 7 svn merge

我想从命令行svn恢复一个错误的提交.通常的建议是将提交反向合并到工作副本中,然后提交更改.在我的情况下,错误的提交是一个错误的类型svn import,它破坏了我的存储库的一部分,我没有在其他任何地方检查.我可以查看受影响的目录,然后按照通常的建议,但如果我可以完全使用URL反向合并,而没有工作副本,那将更加优雅.这可能吗?

Dav*_* W. 2

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

有一种情况这不会太糟糕:

  • 有人在当前版本的修订版 455 中进行了可怕且巨大的更改。您可以轻松地将存储库恢复到版本 454,而不必担心太多。真正不需要看到最终结果是什么。

然而,想象一下:

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

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