在对谷歌和堆栈进行一些研究之后,似乎无法将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]部分可追踪?或者,如果没有这个,根据我们目前的设置,还有其他任何建议可以让我更容易管理存储库吗?
提前致谢。
答案 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
即可开始版本化并共享文件。