如何在 mercurial 中查看已删除文件的内容

Posted

技术标签:

【中文标题】如何在 mercurial 中查看已删除文件的内容【英文标题】:How to view content of a removed file in mercurial 【发布时间】:2020-05-09 21:48:35 【问题描述】:

我想输出(“-o”)在 mercurial 中受版本控制的文件的内容。我知道这可以是done using the cat command。

但是,我感兴趣的文件已被删除,因此 cat 命令失败并显示“rev X 中没有此类文件”,其中 X 是删除文件的修订号。

我不想恢复文件。如何输出这样一个文件的内容?

【问题讨论】:

【参考方案1】:

hg cat -r$REV $FILE

其中$REV 是您要查看的文件的版本,$FILE 是文件名。

如果您不确定修订版,您可以使用hg log $FILE 向您显示历史记录,以便您选择删除之前的修订版。

【讨论】:

谢谢,但是 hg log myfile.txt 返回空。 hg log -r "removes('**/myfile.txt')" 只返回它被删除的变更集。它确实显示了父级:Y rev,但在 cat 命令中使用该 rev 也会生成“rev Y 中没有此类文件” @PM 你指定了文件的路径还是只指定了文件名? @UuDdLrLrSs 我都试过了(从我通常发出 hg 命令的“主”)【参考方案2】:

使用cat 的另一种方法是更新到文件仍然存在的修订版。这只是:

hg up -r$REV

只要您确定它仍然存在于$REV 中。然后您可以正常导航到文件并查看它,将其复制到某处等。

进行任何更新时都需要考虑通常的注意事项 - 即,您通常需要一个干净的工作目录。


如果您使用的是 TortoiseHG,您也可以使用“浏览”功能来执行类似的操作。

在 THG Workbench 中,向下滚动到仍有文件的修订版。然后右键单击“浏览修订版”。这将显示该修订版的整个存储库的树状视图。您可以从树中选择文件并保存,等等。

【讨论】:

以上是关于如何在 mercurial 中查看已删除文件的内容的主要内容,如果未能解决你的问题,请参考以下文章

如何找到并恢复已删除的文件

Mercurial 中止:索引 ... 已损坏

您使用什么命令从Mercurial存储库中排除文件?

如何自动删除 Mercurial 工作树中的所有 .orig 文件?

在 Mercurial 存储库中查找大文件

如何从 Mercurial 克隆中删除工作副本?