【问题标题】:Mercurial hg ignore does not work properlyMercurial hg ignore 无法正常工作
【发布时间】:2013-03-29 08:37:50
【问题描述】:

情况

$ cat .hgignore
.hgignore

$ hg status
M file1
M file2
M src/project.xml

我不想追踪project.xml,所以我跑了

echo "project.xml" >> .hgignore

结果是

$ cat .hgignore
.hgignore
project.xml

$ hg status
M .hgignore
M file1
M file2
M src/project.xml

所以.hgignore 现在已修改,即使它不应该被跟踪并且project.xml 没有发生任何事情。这是什么意思?

【问题讨论】:

标签: mercurial hgignore


【解决方案1】:

你写道:

"M src/project.xml"

这意味着src/project.xml 处于版本控制之下。 已经在版本控制下的文件不能被忽略!这 .hgignore 文件用于忽略未跟踪的文件(状态 将显示“?”)。

您有两种解决方案可以忽略您的文件:

  1. 您可以“hg forget”文件,与“hg add”相反(即, 告诉 Mercurial 不再跟踪此文件),或
  2. 您可以使用“-X”选项作为status/diff/commit 的默认选项 在您的.hg/hgrc 配置文件中,例如,

    [默认值]
    状态 = -X <file>
    diff = -X <file>
    提交 = -X <file>

这将告诉 hg 在状态、差异和提交的使用中不要包含此文件。

【讨论】:

  • 我认为hg forget 绝对是这里更好的选择。 VCS 不应该只是默默地忽略版本控制下的修改文件,当您忘记这一点并期望 hg 只是跟踪文件的更改而不考虑它时,这将在未来导致麻烦。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多