【发布时间】:2010-11-03 06:06:51
【问题描述】:
在 Mercurial 中,我有一个旧的变更集,除了对单个文件的更改之外,它都很好。我将如何恢复对单个文件的更改?
即使只是能够查看上一个变更集中的文件状态也很好,然后我可以剪切和粘贴。
我的 Mercurial 客户是 TortoiseHg。
【问题讨论】:
标签: mercurial
在 Mercurial 中,我有一个旧的变更集,除了对单个文件的更改之外,它都很好。我将如何恢复对单个文件的更改?
即使只是能够查看上一个变更集中的文件状态也很好,然后我可以剪切和粘贴。
我的 Mercurial 客户是 TortoiseHg。
【问题讨论】:
标签: mercurial
从 TortoiseHg 2.8.1 开始
【讨论】:
由于 TortoiseHG 的风格 (~) 更改,Raghuram 的回答不再正确。 “Repository Browser”已重命名为“TortoiseHG Workbench”,但更重要的是,“Revert file contents”不再是上下文菜单。
从 2.0.4 版开始,您需要:
我第一次尝试这个时,我不确定我做错了什么,但我恢复了整个存储库而不是单个文件。所以,在尝试之前一定要确保你提交了一个新的版本。
【讨论】:
打开Repository Browser,转到感兴趣的变更集。您将看到已更改文件的列表。选择您感兴趣的文件并点击Revert file contents
【讨论】:
CLI 版本,适用于 TortoiseHG 的任何(新)版本
为了仅在 FILE 中撤消更改,在更改集 CSET 中引入,请使用这种形式的回退
hg backout -r CSET --include FILE
【讨论】:
至少我已经找到了第二部分的答案。要查看旧版本的单个文件的内容,请在 TortoiseHg 中执行以下操作:
【讨论】:
要使用 TortoiseHg(从 2.2.1 版开始)查看文件的旧版本,请打开 TortoiseHG Workbench,右键单击旧版本,然后单击“浏览版本...”
【讨论】:
虽然使用 TortoiseHg 的 Browse at rev... 的建议可以帮助您查看发生了什么变化(即您可能想要退出的内容),但它不会帮助您退出文件——如果,正如不止一个答案所暗示的那样,您选择Revert to Revision,您将仅退出后续更改,而不是更改集中的更改。
撤消单个文件的变更集的最简单方法(至少,从 TortoiseHg 2.6.1 开始):
Revision History
Revert to Revision 当然,如果您所说的“旧变更集”是指您想要保留对该文件的后续更改,那么除了检查变更集并手动撤消更改之外,没有其他办法。
【讨论】: