本地Mercurial忽略文件

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

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

mercurial
3个回答
23
投票

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

[ui]
ignore = ~/.myhgignore

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

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


12
投票

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

  1. 如果尚未添加文件或目录,并且没有.hgignore文件,您可以: 使用.hgignore过滤它,和 你可以提交.hgignore,如果这对其他人也有用(例如,* .o等),或者你可以将.hgignore保留为本地而不提交/推送它,在这种情况下,你甚至可以在.hgignore中指定.hgignore,如上所述msw以便您的本地版本也将被忽略。
  2. 如果尚未添加文件或目录,并且存在由于某种原因您不想使用(提交和推送)的.hgignore文件,您可以: 声明一个未跟踪的忽略文件,你将使用它像.hgignore,除了它将保持在本地。您可以在repo .hg/hgrc或全局$HOME/.hgrc中声明此未跟踪的忽略文件(请参阅UI section doc)。
  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时包含这些文件。

希望它会有所帮助。


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

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