本地Mercurial忽略文件

时间:2012-10-08 13:55:34

标签: mercurial

是否可以拥有本地Mercurial忽略文件?显然.hgignore是一个版本化为任何其他文件的文件。我可以在版本化文件旁边有这样的文件吗?

3 个答案:

答案 0 :(得分:23)

是的,您可以配置本地的每用户忽略文件。此文件的位置和名称在.hgrc部分下的用户特定[ui]配置文件(通常位于用户的主目录中)中定义,例如:

[ui]
ignore = ~/.myhgignore

此文件的格式应与存储库范围.hgignore文件的格式相同。

参考:http://www.selenic.com/mercurial/hgrc.5.html#ui

答案 1 :(得分:11)

这里有几种情况,因此根据具体情况,您可能会有不同的解决方案:

  1. 如果尚未添加文件或目录,并且没有.hgignore文件,您可以:
    • 使用.hgignore过滤它,
    • 如果这对其他人(例如,* .o等)也有用,你可以提交.hgignore,或者你可以将.hgignore保留为本地而不提交/推送它,在这种情况下,您甚至可以在msw中提到的.hgignore中指定.hgignore,以便您的本地版本也会被忽略。
  2. 如果尚未添加文件或目录,并且存在由于某种原因您不想使用(提交和推送)的.hgignore文件,则可以:
    • 声明一个未跟踪的忽略文件,您将使用.hgignore,除非它保持在本地。您可以在回购.hg/hgrc或全局$HOME/.hgrc中声明此未跟踪的忽略文件(请参阅UI section文档)。
  3. 最后,如果文件/目录已添加到跟踪文件列表中,则无法使用.hgignore对其进行过滤:任何已提交的文件都不能被忽略!你可以:
    • hg forget”文件(与“hg add”相反),然后执行以下两个案例,或者 使用“-X”选项作为.hg/hgrc配置文件中status / diff / commit的默认选项,例如,
      [默认]
      status = -X file1 -X file2
      diff = -X file -X file2
      commit = -X file -X file3
      这将告诉hg不要在使用status,diff和commit中包含这些文件。
  4. 希望它会有所帮助。

答案 2 :(得分:1)

您也可以忽略本地存储库中的.hgignore

$ hg clone some_repository
$ cd some_repository
$ cat > .hgignore
syntax: glob
.hgignore
$ touch foo.c bar.c
$ hg status
? foo.c
? bar.c

请注意.hgignore输出中明显缺少本地hg status