什么是 SVN 中的反向合并(Revert Merge),简单的解释和从头到尾的逐步过程会很棒。
谁能给我流程,如果可以的话,编号。一个好的简单的例子也很棒。
什么是 SVN 中的反向合并(Revert Merge),简单的解释和从头到尾的逐步过程会很棒。
谁能给我流程,如果可以的话,编号。一个好的简单的例子也很棒。
来自乌龟用户指南:
如果要将更改从工作副本中合并回来,以恢复已提交的更改,请选择要恢复的修订并确保选中了“反向合并”框。
从我的角度来看,反向合并是一种“正常”提交,它代表对一个或多个先前提交的“反”提交。以前的提交仍然存在,但更改通过新的“反”提交恢复。
反向合并在形式上与合并相同,但当然是以相反的顺序。反向合并修订的更改将在您的工作副本中撤消。
例如,如果您想从 HEAD 返回到 rev。123,假设您的工作副本处于 HEAD 状态,您将像这样反向合并:
svn merge -r HEAD:123
这会将您的工作副本设置为修订版 123 的状态,但它将正式基于 HEAD。您的工作副本状态就像您手动将文件编辑回修订版 123 一样。到目前为止,存储库中没有任何变化。
请注意,这与更新到修订版 123 不同。如果您这样做了,尽管您的工作副本文件在两种情况下都具有相同的内容,但您的工作副本状态会有所不同:SVN 会知道您的工作副本是基于在修订版 123 上而不是 HEAD。如果您随后尝试提交更改,它会告诉您应该首先更新到 HEAD,这将撤消对修订版 123 的更新,假设您在此期间没有更改任何内容。
回到我们原来的场景。如果您对反向合并感到满意,则可以将其签入存储库:
svn commit -m "We undid all changes since r123."
或者,如果您觉得自己犯了一个错误,您可以恢复反向合并,这是完全不同的事情,因为它只是将您的工作副本设置回存储库状态是基于(在我们的例子中,HEAD):
svn revert --recursive .
但是要小心那个,它会不可逆转地恢复你的反向合并:-)。点指的是当前目录,并且必须明确指定(与大多数其他 SVN 命令不同)作为安全措施,以避免意外恢复任何内容。