Mercurial恢复/退出单个文件

时间:2010-11-03 06:06:52

标签: mercurial

在Mercurial中,我有一个旧的变更集,除了对单个文件的更改之外,它都很好。我如何将更改还原到该单个文件?

即使只是能够在之前的变更集中查看文件的状态也会很好,然后我可以剪切&糊。

我的Mercurial客户是TortoiseHg。

7 个答案:

答案 0 :(得分:12)

由于TortoiseHG的风格(〜)变化,Raghuram的答案不再正确。 “存储库浏览器”已重命名为“ TortoiseHG Workbench ”,但更重要的是,“还原文件内容”不再是上下文菜单。

从版本2.0.4开始,您需要:

  1. 提交您当前的存储库,以防出现问题。
  2. 在“ TortoiseHG Explorer
  3. 中打开相关的变更集
  4. 在文件列表中,右键单击要还原的文件。
  5. 从上下文菜单中选择“还原为修订版”。
  6. 您将看到一个确认对话框,其中包含一个标有“将所有文件还原到此版本”的复选框。确保它未经检查。
  7. 点击“确定”。
  8. 确认仅还原了该文件。如果所有内容都已还原,请更新到步骤1中创建的修订版。
  9. 我第一次尝试这个时,我不确定我做错了什么,但我还原了整个存储库而不是单个文件。所以,一定要确保在尝试之前提交新版本。

答案 1 :(得分:11)

至于TortoiseHg 2.8.1

  1. 提交以防出现问题
  2. 右键单击要回滚的修订,选择“在修订时浏览”
  3. 找到要还原到此修订版的文件,右键单击“还原到此修订版本( Ctrl + Shift + R
  4. 对要还原的所有文件重复3

答案 2 :(得分:7)

打开Repository Browser,转到感兴趣的变更集。您将看到已更改文件的列表。选择您感兴趣的文件,然后点击Revert file contents

答案 3 :(得分:5)

CLI版,适用于任何(新版)TortoiseHG

为了撤消仅在变更集CSET中引入的FILE中的更改,请使用此形式的撤销

hg backout -r CSET --include FILE

答案 4 :(得分:2)

我至少发现了第二部分的答案。要查看旧版本中单个文件的内容,请在TortoiseHg中执行以下操作:

  1. 右键单击该文件并选择repository explorer。
  2. 点击您要恢复的修订版。
  3. 右键单击左下方窗格中的文件。选择修订版本的视图或保存在修订版本。

答案 5 :(得分:1)

要使用TortoiseHg(从2.2.1版本开始)查看文件的旧版本,请打开TortoiseHG Workbench,右键单击旧版本,然后单击“浏览转换...”

答案 6 :(得分:1)

虽然使用TortoiseHg Browse at rev...的建议会帮助您了解更改内容(即您可能想要退出的内容),但它不会帮助您退出文件 - 如果,如同不止一个答案所示,您选择Revert to Revision,则只会退出后续更改,而不是更改集中的更改。

撤消单个文件的变更集的最简单方法(至少从TortoiseHg 2.6.1开始):

  1. 浏览到Windows资源管理器中的文件,然后选择它
  2. 右键单击,然后从TortoiseHg上下文子菜单中选择Revision History
  3. 选择之前的修订版您尝试退出的
  4. 右键单击,然后选择Revert to Revision
  5. 确保"将所有文件还原到此版本"复选框未选中(它会 遵循这些步骤后默认为
  6. 当然,如果通过" old changeset"你的意思是你想要保留对该文件的后续更改,除了检查更改集并手动撤消更改之外,没有办法做到这一点。