1

我有几个存储库用于跟踪系统中用于各种目的的脚本。例如,其中几个脚本是对提取、修改和执行有用的 sql 脚本。很多时候,这些脚本将包含靠近顶部的一组参数,这些参数被更改以查看一组特定的记录。

不幸的是,一旦我使用该文件,它总是显示为 hg 状态的变化。我真的很想用一种方法向 Mercurial 表明文件的某些部分对于检测更改没有意义。

我知道(并且经常使用)MQ、记录和搁置扩展——但所有这些都需要我做一些事情来忽略这些行。我真的更喜欢忽略它们。

有什么建议么?

4

2 回答 2

0

使用 MQ,您可以:

  • 将所有(本地)编辑移动到 MQ 补丁中
  • 创建别名,在单个命令中“在提交和提交之前取消应用所有补丁”
于 2013-08-01T07:56:29.037 回答
0

可能可以 使用pre-commit 和 post-commit 挂钩来执行以下操作:

  1. 在预提交时,将文件复制到某个临时已知文件,然后用原始未修改版本覆盖它
  2. 让提交继续
  3. 在提交后,将文件从其临时位置复制回来

然而,这很脆弱,需要每个有这个问题的人确保他们安装了相同的钩子。请记住,挂钩不会提交到存储库,但必须手动设置。

这样做的推荐方法是将模板文件提交到存储库中,使用不同的文件名,然后让 Mercurial 忽略您不断修改的整个实际文件。

然后,当您设置一个新的工作文件夹(我认为这种情况很少发生)时,只需从模板中复制出一个可用版本就很简单了。如果您正在自动运行脚本,您甚至可以通过if not exists ... copy ...某处的某个步骤自动执行此步骤。

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

于 2013-08-01T07:35:35.273 回答