mercurial:hgrc文件中的重复更少

mercurial:hgrc文件中的重复更少,mercurial,Mercurial,我已经在我的谷歌代码托管上使用了Hg。对于每个项目,我在.hgrc的[auth]部分设置了用户名/密码,无需每次询问密码即可推送。但它有很多重复,比如: [auth] proj1.prefix = ... 111 proj1.username = google code username proj1.password = google code password proj2.prefix = ... 222 proj2.username = google code username proj2

我已经在我的谷歌代码托管上使用了Hg。对于每个项目,我在.hgrc的[auth]部分设置了用户名/密码,无需每次询问密码即可推送。但它有很多重复,比如:

[auth]
proj1.prefix = ... 111
proj1.username = google code username
proj1.password = google code password

proj2.prefix = ... 222
proj2.username = google code username
proj2.password = google code password
这是不是可以减少复制?是否可以在hgrc中设置变量,并从所有用户名/密码行引用该变量

提前感谢您的帮助

似乎不支持将变量作为属性值

对于Mercurial配置文件,您可以有多个
.rc
文件

*.rc
单个目录中的文件按字母顺序读取,后面的文件优先于前面的文件

这意味着你可以:

  • 一个主hgrc文件
  • 一个用于项目身份验证的模板文件
  • 一个脚本能够生成多个
    proj.rc
    文件,每个项目一个
仍然有重复,但至少是为您生成的。

来自hgrc中的部分:

格式:
=其中
用于将参数分组到身份验证条目中

.prefix
:使用具有最长匹配前缀的身份验证条目


因此,code.google.com的一个条目就足够了。同样值得关注的是
%include file
,这样您可以将常见内容存储在单独的文件中,并将它们包含在任何hgrc中。

来自同一用户的不同Google代码项目没有相同的前缀,因此您不能在hgrc的auth部分使用prefix属性

但你可以用另一种方式。像这样写一个~/.hgrc:

[auth]
gc.username = google code username
gc.password = google code password
[paths]
default = https://PROJECTNAME.googlecode.com/hg/

[auth]
gc.username = https://PROJECTNAME.googlecode.com/hg/
然后为每个项目创建一个PROJECTDIR/hgrc/.hgrc,如下所示:

[auth]
gc.username = google code username
gc.password = google code password
[paths]
default = https://PROJECTNAME.googlecode.com/hg/

[auth]
gc.username = https://PROJECTNAME.googlecode.com/hg/
在.hgrc和项目hgrc之间,条目的名称(在本例中为gc)必须相同,这一点很重要。

[ui]
username = Ivan Pupkin <ivan.pupkin@gmail.com>
verbose = True

[auth]
googlecode.prefix = https://code.google.com/
googlecode.username = username
googlecode.password = password
[ui]
用户名=Ivan Pupkin
详细=正确
[授权]
googlecode.prefix=https://code.google.com/
googlecode.username=用户名
googlecode.password=密码

我在hg 2.3.2:)中检查它。

在哪里放置*rc?使用脚本从模板生成my.hgrc不是更容易吗?@Zaharpov:它们是“每个安装/系统配置文件”,位于您告诉它们的位置(对于Windows),或者位于Unix的
/etc/mercurial/hgrc.d/*.rc
下。当然,您只能生成自己的每个用户
.hgrc
文件,这更适合用户信息。