Svi*_*ish 51 version-control mercurial configuration-files hgignore
我的项目中有一个包含数据库设置的文件,我已将其设置为某些默认值.该文件由Mercurial跟踪并签入.由于此文件将使用不同的值编辑各种开发人员机器,有没有办法告诉Mercurial忽略对此文件的新更改?
我尝试将文件添加到.hgignore文件中,但由于文件被跟踪,因此不会被忽略.这在其他情况下还不错,但我想知道我能在这里做些什么吗?
sth*_*sth 27
如果您始终要忽略该文件,则可以将该-X选项作为默认值添加commit到.hg/hgrc配置文件中:
[defaults]
commit = -X program.conf
Run Code Online (Sandbox Code Playgroud)
yan*_*ost 26
使用文件模板绝对是最好的解决方案.例如,如果您有一个database.ini文件,请提交一个database.ini.template文件并忽略database.ini.hgignore
Mar*_*ler 12
我们写了一个名为exclude的扩展名.它会自动-X在支持它们的命令上添加选项 - 因此hg status并且hg commit不会看到修改后的文件.它的工作原理是.hgexclude从存储库的根目录读取文件,就像.hgignore文件一样.您添加要在其中排除的文件:
syntax: glob
db.conf
Run Code Online (Sandbox Code Playgroud)
扩展程序运行良好,但有一个已知的情况,它失败:合并和合并后的提交(这在wiki上有记录).它需要进行改进,以便将修改保存到临时文件中,然后再恢复它们.如果您需要此功能,请与我们联系.
没有真正的自动化过程,但您可以尝试(如在此SO问题中)-X选项hg commit:
% hg stat
M myfile
% hg commit -X 'myfile'
Run Code Online (Sandbox Code Playgroud)
(其他解决方案可能涉及搁置或hq)
但是,这不是"正确"的解决方案.我宁愿推荐版本控制:
如果您使用的是 TortoiseHG,请打开存储库的设置,转到提交部分(左侧的第二个图标)并将文件名添加到右侧的自动排除列表中(从底部开始约第 3 个)列表)。
来自https://tortoisehg.readthedocs.io/en/latest/settings.html#commit