我可以通过编程方式设置Mercurial配置选项吗?

时间:2011-01-11 15:16:55

标签: mercurial config hgrc

我正在寻找一种方法来设置.hgrc配置项而不实际编辑文本文件。我正试图在多个开发人员之间标准化hgrc的设置,我想要一个像

这样的命令
hg --config ui.username=foo

但也将配置更改保存到hgrc文件中。

看起来这应该是应该直接在vanilla hg命令中支持的东西,但我无法在任何地方找到它。

3 个答案:

答案 0 :(得分:10)

如果您想要保存配置更改,有人 - 无论是您还是Mercurial - 都必须编辑配置文件: - )

如果你可以用

打电话给Mercurial
hg --config ui.username=foo

那么你也应该能够做到

echo '[ui]' >> ~/.hgrc
echo 'username = foo' >> ~/.hgrc

这将保存配置更改,无论~/.hgrc文件的外观如何(可以有多个[ui]部分)。

Mercurial 3.0及更高版本具有the hg config --edit command,可以使用用户配置文件打开编辑器。仍然不是你要求的,但至少这样可以更容易地以交互方式编辑文件。

答案 1 :(得分:2)

此表格:

hg --config ui.username=foo

不保存任何东西。它只设置一次运行的值。

如果有任何帮助,您也可以使用/etc/mercurial/hgrc进行系统范围的设置。

答案 2 :(得分:1)

有一个有助于此的扩展,https://bitbucket.org/alu/hgconfig/wiki/Home

installing that hgext之后,您可以执行以下操作。

% hg showconfig paths
paths.default=ssh://hg@bitbucket.org/alu/hgconfig
% hg config paths.upstream $(hg showconfig paths.default)
% hg config paths.default $(hg showconfig paths.default | sed 's|/alu/|/nassrat/|')
% hg showconfig paths
paths.default=ssh://hg@bitbucket.org/nassrat/hgconfig
paths.upstream=ssh://hg@bitbucket.org/alu/hgconfig

唯一的问题是这会覆盖builtin config命令,您可以调整代码来更改命令名称,也可以使用它。幸运的是,如果您的用例只是设置并获得特定的配置,那可能无关紧要。