2011-07-13 158 views
1

为了停止为每个新存储库编写我的.hgignore;我决定创建我hgignores一个独立的存储设备目前的样子:你如何管理你的忽略?

hgignores  
├── cpp 
├── eclipse 
├── intellij 
├── java 
├── latex 
├── linux 
├── netbeans 
├── osx 
├── python 
└── textmate 

现在每个仓库,我粘贴相关的忽略。

例如:

$ cat hgignores/latex hgignores/osx hgignores/textmate >> [repo]/.hgignore 

这使我怀疑,如果将来我碰巧已经忘记了的忽略文件标志cpp(例如),我将不得不修改hgignores/cpp并最终使更改每个cpp存储库我再次!

我认为我正在通过为忽略创建一个统一的仓库来向正确的方向发展,但我可能在这里和那里都缺少一些小技巧。

很想听听一些建议;或对你如何完成这一任务的见解?

回答

3

可以使用水银的回购的hgrcpoint to ignore files库之外:

[ui] 
ignore = /path/to/ignorefile 
ignore.cpp = /path/to/cppignorefile 

您也可以在全球hgrc/Mercurial.ini做到这一点,但是这只是事情要记住,如果你需要它总有一天。

当然,由于hgrc未被克隆,因此必须将此部分重新添加到回购的新克隆中。

3

我倾向于在我的全局忽略文件(git,mercurial)中放置关于我的个人工具的所有忽略模式:文本编辑器,操作系统等。在项目上工作的其他人不关心这些,所以我保留他们脱离了项目的忽略文件。 这是一些忽略模式,您不必在每个项目上进行管理。

关于项目特定的忽略,有模板文件似乎足够好。每种语言所需的模式不会经常改变(可能绝大多数模式从未改变)。您仍然可以在忽略存储库中编写一个小脚本来更新您的忽略文件。它只会导入缺失的模式。

+0

我使用版本控制的视觉演播室解决方案(仅限hg)的模板。 .hgignore由mercurial进行跟踪,并包含非源非自动生成文件的规则。在通过ATL项目制作COM对象时特别方便。 –