2012-02-09 64 views
1

有一个或两个文件,如.hgignore,我通常希望它们在每个项目中都是相同的。在Mercurial存储库之间共享文件

但是,这些文件的性质意味着我不能简单地将它们移动到一个共同的共享项目,而只是让其他项目依赖于该项目。他们必须在每个项目中。符号链接不是一种选择,因为我们的一些开发人员使用Windows。

如何在存储库之间共享这些文件并使更改(至少在本地计算机上)传播?我正在使用Eclipse。

回答

0

硬链接而不是复制相关文件与Eclipse一起工作的种类 - 尽管您必须刷新每个其他项目才能使其接受更改。 但是,您可以将Eclipse配置为监视文件系统并在需要时自动刷新 - 我推荐此操作。

Emacs默认不工作,因为Emacs打破了硬链接(这通常是正确的做法,但不是这种情况下你想要的)。但是,您可以使用(setq backup-by-copying-when-linked t)为多重链接的文件禁用此行为。

3

为了您的hgignore您可以在每个项目的.hg/hgrc文件放在一个条目这样的特殊情况:

[ui] 
ignore.common = ~/hgignore-common 

如果你知道你的公共库将始终在父目录中,这是常有的情况下,用subrepo设置,你可以这样做:

[ui] 
ignore.common = ../hgignore-common 

,或者如果你知道它总是会在项目中检出的同级目录,你可以这样做:

[ui] 
ignore.common = ../company-wide-defaults/hgignore-common 

不幸的是,没有绝对的方法可以引用一个在任何地方都有效的文件,但是至少可以让您的机器上的所有签出都引用一个常见的忽略。