【问题标题】:How do you disable mercurial from leaving .orig files after a merge?合并后如何禁用 mercurial 离开 .orig 文件?
【发布时间】:2011-11-17 18:20:01
【问题描述】:

不久前更新 TortoiseHg+Mercurial 后,我开始在合并后获得 .orig 文件。我已经查看了删除/清除它们的解决方案,但我正在寻找一种方法来禁用文件被遗忘。在没有出现这些文件的情况下正常合并后,我想知道这是否是可以关闭的新功能。

【问题讨论】:

  • 您从哪个版本的 Mercurial/TortoiseHg 升级到哪个版本?
  • 我现在的版本是tortoisehg-2.1.2 hg-1.9.1,不知道之前是什么版本,可能是2.0.4
  • 找到旧的安装程序,它是 2.0.4,卸载当前并重新安装 2.0.4。进行了合并并使用了 KDiff3(没有更改)并得到了一个 .orig 文件。不知道为什么我现在在这个旧版本上测试合并时得到这些文件。
  • 将 .orig 文件放入 .hgignore 文件可能很有用。这并不能完全解决问题,但确实有助于将它们排除在许多操作之外。

标签: mercurial merge tortoisehg


【解决方案1】:

更新:

根据 Mercurial config documentation,默认部分已弃用。 Mercurial wiki 对它们的使用也特别挑剔。推荐的替代方法是创建一个提供您正在寻找的功能的命令别名(而不是隐藏内置命令)。这是我在配置中切换到的内容。

[alias]
undo = revert --no-backup

原文:

我在遇到完全相同的问题时偶然发现了这一点。我一直在处理它并删除 .orig 文件,因为我似乎从来不需要它们。我发现的最佳建议是在 StackOverflow 上,并建议使用 hgrc 文件的默认部分。为了具体解决这个问题,请添加以下部分:

[defaults]
revert = --no-backup

Here's where I read about this.

【讨论】:

  • 由于我遇到的其他问题(包括这个问题),我现在已经切换到 GIT,但看到答案在非常相似的答案中被接受,我会将其标记为答案。谢谢。
  • @Darren:因为这是一个公认的答案,所以我浪费时间尝试它,结果发现它需要启用扩展。而且,根据mercurial.selenic.com/wiki/Defaults,该扩展已被弃用。
  • @StriplingWarrior 我也浪费了很多时间来解决这个问题,这就是我切换的原因。它适用于我在 2011 年下载的版本。您可以发布当前版本的 mercurial 的答案,然后标记新答案。
  • 1) revert 与合并有什么关系? 2) 别名不起作用,因为该命令不适用于我,而是用于 NetBeans 的 Mercurial 插件。
  • 我同意@MarkJeronimus,虽然这是有用的信息,但它不能回答问题。您可以使用 revert 询问 + 回答一个单独的问题。
【解决方案2】:

我个人会将 *.orig 文件添加到 hg 忽略列表中,并且不时地做一个

rm **/*.orig

您也可以使用Hg Purge extension

【讨论】:

  • 如果您想在 bash 等 shell 中递归删除所有 *.orig 文件,这可能是一个更好的命令:(cd `hg root` && find . -type f -name "*.orig" | xargs rm)
  • ...或者只是“find .-type f -name "*.orig" -delete”! :)
【解决方案3】:

以下内容似乎足以说服 hg 不要编写这些文件:

# ~/.hgrc
[ui]
origbackuppath = /tmp/hg-trash

【讨论】:

  • /dev/null 对我不起作用。一个好的目录选择是/home/yourUserName/.local/share/Trash/files。这样,您就可以防止意外还原,而不会使用.orig 文件污染您的存储库。
  • 谢谢,我确实注意到一些命令在/dev/null 中引发了错误。我已经更新了答案以使用不同的目录。
【解决方案4】:

我通过禁用应用程序中的备份使其在 SourceTree 中工作。

【讨论】:

    【解决方案5】:

    留下 .orig 文件的是 KDiff3,而不是 TortoiseHg。
    这是禁用此设置的方法:

    设置 - 配置 KDiff3 - 选项卡目录
    最后一个复选框:“备份文件(.orig)”

    【讨论】:

    • 我试过 CodeCompare 和 P4Merge,它们都留下了文件。没有尝试过 KDiff3,但如果它可以处理文件可能会这样做。会试一试的。
    • 尝试了这个选项,仍然保留文件。看起来它的 Mercurial 在合并后离开了这个文件。
    • Darren 是对的:即使您不使用第三方合并工具,Mercurial 也会添加此文件。
    • KDiff3 确实有一个“备份文件 (.orig)”选项。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多