忽略Mercurial中文件的未来更改,但仍然跟踪它[重复]

问题描述 投票:5回答:3

可能重复: Mercurial: How to ignore changes to a tracked file

我在Mercurial存储库中有一个文件,我想作为示例配置文件,但在我开发它时,我想对它进行特定的更改,我不想跟踪,比如数据库密码。我尝试将该文件添加到.hgignore,但Mercurial仍然注意到修改。

我是否可以在Mercurial存储库中“跟踪”文件,但忽略该文件的未来本地更改而不将其从存储库本身中删除?

mercurial
3个回答
5
投票

我不认为这种能力存在(虽然喜欢看别人的答案:)但是。我使用的替代方法是将文件检查到名为“config.template”的源代码控制中(作为示例)。该应用程序实际上使用名为“config”的文件,然后我通过复制模板文件创建该文件。然后确保.hgignore文件中不包含“config”文件,这样您就不会意外地检查。


3
投票

不,Mercurial没有内置支持来自动处理这个问题,好吧......不是你要问的方式。

文件有两种状态:

  • 履带
  • 未跟踪

.hgignore文件唯一能做的就是帮助查看所有未跟踪文件的所有命令,并将它们添加到存储库中(即添加它们以进行跟踪。)跟踪文件后,将始终跟踪该文件。

其余的留给手动处理,这意味着如果你跟踪一个文件,但不想提交更改,你将不得不取消选中,忽略或以其他方式确保commit命令不提交,你承诺的时间。

处理此问题的首选方法是提交模板。然后,如果可能,在构建过程中添加一个步骤,检查实际配置文件是否存在,如果不存在,则从模板中复制。您确保的实际配置文件不会被跟踪,并添加到.hgignore文件中。

这样,您可以更改实际的配置文件,但除非您专门将其添加到存储库,否则不会自动跟踪它,并且在提交期间无需执行任何操作。


1
投票

您可以在将来的提交中排除该文件。

如果您从命令行使用hg,这可能会很麻烦,因为您必须手动指定要提交的文件,但如果您使用tortoisehg之类的东西,您可以在提交表单中取消选中配置文件,它的更改不会进入变更集。

© www.soinside.com 2019 - 2024. All rights reserved.