是否有可能将mercurial hgrc文件的一部分签入回购?具体来说,[路径]部分

时间:2013-11-21 09:43:50

标签: version-control mercurial hgrc

在对谷歌和堆栈进行一些研究之后,似乎无法将hgrc文件签入到回购中,出于各种安全原因这些都很有意义。

然而,我有一个有趣的设置,我想知道是否有人知道如何使这更容易。

具体来说,我们运行了大量的电子商务商店,其中的模板是基础仓库建立的,每个商店也有自己的仓库(从基地继承)。

我们还有许多开发环境,所以为了使这更容易,我们非常重视hgrc中的[path]指令。

以下是我们设置的示例:

假设我们为商店提供了以下模板存储库:electronic_store,clothing_store,toy_store,以及一个名为base的基本模板

我们还有以下环境:巴黎,伦敦和现场

因此,在每个商店的hgrc中,我们有以下内容:

;inside hgrc for electronic_store
[path]
default = kiln://instances/live/electronic_store
paris = kiln://instances/paris/electronic_store
london = kiln://instances/london/electronic_store
live = kiln://instances/live/electronic_store
base = kiln://instances/live/base

;inside hgrc for clothing_store
[path]
default = kiln://instances/live/clothing_store
paris = kiln://instances/paris/clothing_store
london = kiln://instances/london/clothing_store
live = kiln://instances/live/clothing_store
base = kiln://instances/live/base

这使得从任何环境轻松做hg拉力基础,hg推/拉巴黎,hg推/拉等等

但是,我们经常关闭环境并打开新环境,然后更新所有存储库的hgrc,不仅在每个店面(我们原本希望这样做),而且在每个环境中也是如此。由于未跟踪hgrc,因此无法按照我们的预期将这些更改与简单的拉/推同步。

我们也无法将这些文件添加到我们的全局.hgrc文件中,因为虽然路径名相同,但它们会推/拉到各自的存储库(例如,电子商店上的hg push paris与service_store上的hg push paris不同。 )

有没有办法让回购中的hgrc的[path]部分可追踪?或者,如果没有这个,根据我们目前的设置,还有其他任何建议可以让我更容易管理存储库吗?

提前致谢。

1 个答案:

答案 0 :(得分:1)

正如Ry4an所说here in StackOverflow,有一个不经常使用的%include指令。诀窍可能是:

./.hg/hgrc通常的配置中加一行,包括工作目录中的hgrc文件:

[paths]
%include ../hgrc.tracked.paths 

./hgrc.tracked.paths Mercurial版本化的路径中:

[paths]
default = kiln://instances/live/clothing_store
paris = kiln://instances/paris/clothing_store
london = kiln://instances/london/clothing_store
...

所以只需hg add hgrc.tracked.paths即可开始版本化并共享文件。