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

joh*_*aul 16 mercurial config hgrc

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

hg --config ui.username=foo
Run Code Online (Sandbox Code Playgroud)

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

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

Mar*_*ler 10

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

如果你可以打电话给Mercurial

hg --config ui.username=foo
Run Code Online (Sandbox Code Playgroud)

那么你也应该能够做到

echo '[ui]' >> ~/.hgrc
echo 'username = foo' >> ~/.hgrc
Run Code Online (Sandbox Code Playgroud)

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

Mercurial 3.0及更高版本具有使用用户配置文件打开编辑器hg config --edit命令.仍然不是你要求的,但至少这使得交互式编辑文件变得更容易.

  • 如果正在运行hg的进程没有'〜'或HOME目录,或者它作为带有'〜'目录的系统/守护程序用户运行,则无法写入::〜( (3认同)
  • @Garen:这似乎是git的--config工具的不良替代品.将配置回显到文件的末尾会损害连续性和结构,并且最多会覆盖现有的配置元素(而不是替换或附加'到位'). (3认同)
  • 某些流行的CI系统(例如TeamCity)无法做到这一点.文档也是完全错误的 - 例如,hg不检查记录的系统范围的位置,如C:\ Mercurial,我从来没有能够让它读取广告的注册表位置.在Linux上,当你的构建发生在一个chroot内,你可能会很难实现环境设置,没有homedir等等.我可以继续,重点是它很容易绕过它们IFF Mercurial只是让我们在命令行上指定配置文件路径.:) (2认同)
  • 自从善变的 AFAIK 存在以来,这一直是一个要求。想知道为什么固执地不建造这个。 (2认同)