在Mercurial中,我有一个旧的变更集,除了对单个文件的更改之外,它都很好。我如何将更改还原到该单个文件?
即使只是能够在之前的变更集中查看文件的状态也会很好,然后我可以剪切&糊。
我的Mercurial客户是TortoiseHg。
答案 0 :(得分:12)
由于TortoiseHG的风格(〜)变化,Raghuram的答案不再正确。 “存储库浏览器”已重命名为“ TortoiseHG Workbench ”,但更重要的是,“还原文件内容”不再是上下文菜单。
从版本2.0.4开始,您需要:
我第一次尝试这个时,我不确定我做错了什么,但我还原了整个存储库而不是单个文件。所以,一定要确保在尝试之前提交新版本。
答案 1 :(得分:11)
至于TortoiseHg 2.8.1
答案 2 :(得分:7)
打开Repository Browser
,转到感兴趣的变更集。您将看到已更改文件的列表。选择您感兴趣的文件,然后点击Revert file contents
答案 3 :(得分:5)
CLI版,适用于任何(新版)TortoiseHG
为了撤消仅在变更集CSET中引入的FILE中的更改,请使用此形式的撤销
hg backout -r CSET --include FILE
答案 4 :(得分:2)
我至少发现了第二部分的答案。要查看旧版本中单个文件的内容,请在TortoiseHg中执行以下操作:
答案 5 :(得分:1)
要使用TortoiseHg(从2.2.1版本开始)查看文件的旧版本,请打开TortoiseHG Workbench,右键单击旧版本,然后单击“浏览转换...”
答案 6 :(得分:1)
虽然使用TortoiseHg Browse at rev...
的建议会帮助您了解更改内容(即您可能想要退出的内容),但它不会帮助您退出文件 - 如果,如同不止一个答案所示,您选择Revert to Revision
,则只会退出后续更改,而不是更改集中的更改。
撤消单个文件的变更集的最简单方法(至少从TortoiseHg 2.6.1开始):
Revision History
Revert to Revision
当然,如果通过" old changeset"你的意思是你想要保留对该文件的后续更改,除了检查更改集并手动撤消更改之外,没有办法做到这一点。