您如何设置Mercurial用于提交的用户名?


78

当我在Mercurial中提交这样的内容时:

hg commit -m "username question"

我看到以下输出:

No username found, using 'WindowsVistaAdmin@ChunkyMonkey' instead

ChunkyMonkey是我的Windows计算机名称,并且显然WindowsVistaAdmin是我在此计算机上登录的用户。

如何将用户名设置为更受人尊敬,或者至少更简洁?

Answers:


117

~/.hgrc(* nix)或mercurial.ini(Windows)文件中:

[ui]
username = First Last <email@address.com>

mercurial.ini适用于C:\Documents and Settings\[username]\XP或更低版本,C:\Users\[username]\适用于Vista和更高版本。hgtk userconfig如果已安装TortoiseHg并执行此操作,则也可以运行。)


3
在OSX 10.8上,我必须自己制作.hgrc文件。
Graham P Heath

对于2.0及更高版本,TortoiseHg命令已更改为thg
geronimo

30

如果要使用--config,可以直接在命令行上指定用户名。例如

hg --config ui.username=frymaster -m "comment here" commit

实际上,您可以使用此命令覆盖.hgrc中的任何内容。只需查看您的.hgrc并注意以下格式:

[section]
key=val

直接翻译成

hg --config section.key=val

非常适合在仓库中插入其他开发人员的更改!
2015年

由于什么可能的原因,这不在Mercurial的文档/帮助中?我想我能做到这一点,但几乎解决了思维善变只是迟钝,并没有允许它时,我没有通过找到它hg config -hhg config -h --verbosehg help config,也不在网上selenic.com/mercurial/hg.1.html#config
naki 2016年

1
哦,没关系。您说的--config不是config:它是其他命令的选项,用于命令级覆盖...仍然不是我想要的。GRRR ....为什么我不能只输入hg config -l ui.username=username for this repo。这样可以轻松实现身份设置别名:[alias] identity1=config -l ui.username=my prewritten user info all ready to be designated for use on of many newly cloned repos with various identities associated
naki

16

来自这里的信息:

设置用户名

首次尝试运行hg commit时,不能保证会成功。Mercurial会记录您所做的每次更改的名称和地址,以便您和其他人以后能够知道是谁进行了每个更改。Mercurial会尝试自动找出一个明智的用户名来提交更改。它将按顺序尝试以下每种方法:

  1. 如果在命令行上的hg commit命令中指定-u选项,然后再输入用户名,则始终将其赋予最高优先级。
  2. 如果您已设置HGUSER环境变量,则接下来进行检查。
  3. 如果您在主目录.hgrc中创建一个带有用户名条目的文件,则接下来将使用该文件。要查看此文件的内容应为什么样,请参阅下面的“创建Mercurial配置文件”一节。
  4. 如果您设置了EMAIL环境变量,那么接下来将使用它。
  5. Mercurial将查询您的系统以查找您的本地用户名和主机名,并从这些组件中构造一个用户名。由于这通常会导致用户名不是很有用,因此如果必须这样做,它将打印警告。

如果所有这些机制都失败,Mercurial将失败,并显示一条错误消息。在这种情况下,除非您设置用户名,否则它不会让您提交。

您应该将HGUSER环境变量和hg commit命令的-u选项视为覆盖Mercurial的默认用户名选择的方法。对于正常使用,设置自己的用户名最简单,最可靠的方法是创建一个.hgrc文件。有关详情,请参见下文。


7
是否可以通过存储库设置用户名?
edomaur's

4
@edomaur,是的,您必须./hg/hgrc在有问题的存储库中编辑文件,您需要username = Dev server在该[ui]部分中设置
user907860 2013年

10
之所以创建Stackoverflow是因为Google不会以简明易懂的格式提供信息。
塞巴斯蒂安·帕滕

3

这是我的Windows /users/xxx/mercurial.ini的外观。我不必输入任何用户名或密码。看起来可能是特定于回购协议。我已经安装了tortoiseHG,不确定是否有任何区别。

[ui]
username=mbroekhuis

[auth]
repo.prefix=http://myrepo
repo.username=mbroekhuis
repo.password=secret

1
我认为以明文形式输入密码不是一个好主意。
Mo2

我倾向于同意。您可以省略该部分。
Matt Broekhuis 2015年

2

对于任何尝试使用HG工作台的人

设定

在此处输入图片说明

用户全局设置

在此处输入图片说明

编辑档案

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.