代码之家  ›  专栏  ›  技术社区  ›  Redwood

如何回滚对SVN的全部或部分提交?

  •  12
  • Redwood  · 技术社区  · 15 年前

    如何使用Tortoissesvn恢复SVN提交的全部或部分内容?

    4 回复  |  直到 15 年前
        1
  •  15
  •   eduncan911    15 年前

    首先,您需要标识,而不是要还原修订版的“所有更改”,或者只还原一个文件。Tortoissesvn只有“1或all”方法;也就是说,您可以还原整个签入集或单个文件:而不是部分签入。

    整个变更集

    因此,如果要还原特定版本(并且希望更改该变更集中的所有文件),则需要右键单击->Tortoissesvn->显示日志。找到要回滚到的修订/变更集,右键单击该修订“还原到此修订”。

    还有一个可能让您感兴趣的选项,即“从此修订中还原更改”,它将在该修订和当前版本之间进行差异合并,并仅合并差异。我发现这有时更吸引人;所以,我可以在变更集中保留所有的变更。

    单文件

    另一个选项是恢复单个文件。您将再次右键单击->Tortoissesvn->显示日志;但这次可以选择单个文件。

    Tortoissesvn不允许您在变更集中选择多个要还原为的文件。要么就是全部,要么就是1。

    变更集签入

    对于所有其他正在阅读的文档,请确保“签入”只涉及与该更改相关的文件。这在现在应该是常见的做法;但是,我仍然发现开发人员在一天结束时“快速”地运行签入,将一天中的所有更改打包成一个签入。

    我眯着眼睛看着那些家伙。- ^ ^

        2
  •  5
  •   Bartek Szabat    15 年前

    如果要还原以前所做的提交(修订):

    与探险家:

    1. 右键单击要还原的文件/文件夹,
    2. Tortoissesvn->显示日志,
    3. 右键单击不需要的修订,
    4. “从此版本还原更改”,
    5. 提交& GT;好的。

    如果要撤消本地所做的更改(未斜接)

    使用资源管理器:右键单击文件,Tortoissesvn->还原。

        3
  •  2
  •   Steven Evers    15 年前

    或者像巴特克所说的那样,你可以签出一份局部修订的本地工作副本,并将其提交回头部。

        4
  •  2
  •   sleske    15 年前

    请注意,您只能在签入新修订的意义上“还原”,该修订不再包含您想要还原的更改。在其他答案中有描述。

    你可以 实际上,撤消签入(如“从未发生过”),旧状态仍将在存储库的历史记录中。

    真正的撤销/删除东西是一个长期存在的功能请求:

    http://subversion.tigris.org/issues/show_bug.cgi?id=516