我怎样才能钩住Mercurial来忽略文件部分的差异?

我怎样才能钩住Mercurial来忽略文件部分的差异?,mercurial,mercurial-hook,Mercurial,Mercurial Hook,我有几个存储库,用于跟踪系统中各种用途的脚本。例如,其中一些脚本是sql脚本,可用于启动、修改和执行。这些脚本通常会在顶部附近包含一组参数,这些参数会被更改以查看特定的记录集 不幸的是,只要我使用该文件,它总是显示为hg状态的更改。我真的很想用一种方式向Mercurial表明,为了检测更改,文件的某些部分并不有趣 我知道(并经常使用)MQ、record和shelve扩展,但所有这些都要求我做一些事情来忽略这些行。我真的宁愿让他们被忽略 有什么建议吗?您可以使用提交前和提交后挂钩来执行以下操作:

我有几个存储库,用于跟踪系统中各种用途的脚本。例如,其中一些脚本是sql脚本,可用于启动、修改和执行。这些脚本通常会在顶部附近包含一组参数,这些参数会被更改以查看特定的记录集

不幸的是,只要我使用该文件,它总是显示为hg状态的更改。我真的很想用一种方式向Mercurial表明,为了检测更改,文件的某些部分并不有趣

我知道(并经常使用)MQ、record和shelve扩展,但所有这些都要求我做一些事情来忽略这些行。我真的宁愿让他们被忽略

有什么建议吗?

您可以使用提交前和提交后挂钩来执行以下操作:

  • 在预提交时,将该文件复制到某个临时已知文件,然后用原始的未修改版本覆盖它
  • 让提交继续进行
  • 提交后,将文件从其临时位置复制回
  • 然而,这是脆弱的,需要每个有这个问题的人确保他们安装了相同的钩子。记住,钩子不会提交到存储库,但必须手动设置

    建议的方法是将模板文件提交到存储库中,使用不同的文件名,然后让Mercurial忽略您一直在修改的整个实际文件

    然后,当您设置一个新的工作文件夹时,只需从模板中复制一个可用的版本就可以了(我假设这种情况很少发生)。如果正在自动运行脚本,甚至可以通过
    (如果不存在)自动执行此步骤。。。复制…
    某个地方的步骤

    但是,您不能要求Mercurial在每次提交时自动忽略部分文件。

    使用MQ,您可以:

    • 将所有(本地)编辑移到MQ修补程序中
    • 创建别名,在单个命令中“在提交和提交之前取消应用所有修补程序”