当我在Mercurial中提交这样的内容时:
hg commit -m "username question"
我看到以下输出:
No username found, using 'WindowsVistaAdmin@ChunkyMonkey' instead
ChunkyMonkey
是我的Windows计算机名称,并且显然WindowsVistaAdmin
是我在此计算机上登录的用户。
如何将用户名设置为更受人尊敬,或者至少更简洁?
Answers:
在~/.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并执行此操作,则也可以运行。)
thg
。
如果要使用--config,可以直接在命令行上指定用户名。例如
hg --config ui.username=frymaster -m "comment here" commit
实际上,您可以使用此命令覆盖.hgrc中的任何内容。只需查看您的.hgrc并注意以下格式:
[section]
key=val
直接翻译成
hg --config section.key=val
hg config -h
,hg config -h --verbose
,hg help config
,也不在网上selenic.com/mercurial/hg.1.html#config
--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
。
来自这里的信息:
设置用户名
首次尝试运行hg commit时,不能保证会成功。Mercurial会记录您所做的每次更改的名称和地址,以便您和其他人以后能够知道是谁进行了每个更改。Mercurial会尝试自动找出一个明智的用户名来提交更改。它将按顺序尝试以下每种方法:
- 如果在命令行上的hg commit命令中指定-u选项,然后再输入用户名,则始终将其赋予最高优先级。
- 如果您已设置HGUSER环境变量,则接下来进行检查。
- 如果您在主目录.hgrc中创建一个带有用户名条目的文件,则接下来将使用该文件。要查看此文件的内容应为什么样,请参阅下面的“创建Mercurial配置文件”一节。
- 如果您设置了EMAIL环境变量,那么接下来将使用它。
- Mercurial将查询您的系统以查找您的本地用户名和主机名,并从这些组件中构造一个用户名。由于这通常会导致用户名不是很有用,因此如果必须这样做,它将打印警告。
如果所有这些机制都失败,Mercurial将失败,并显示一条错误消息。在这种情况下,除非您设置用户名,否则它不会让您提交。
您应该将HGUSER环境变量和hg commit命令的-u选项视为覆盖Mercurial的默认用户名选择的方法。对于正常使用,设置自己的用户名最简单,最可靠的方法是创建一个.hgrc文件。有关详情,请参见下文。
./hg/hgrc
在有问题的存储库中编辑文件,您需要username = Dev server
在该[ui]
部分中设置
这是我的Windows /users/xxx/mercurial.ini的外观。我不必输入任何用户名或密码。看起来可能是特定于回购协议。我已经安装了tortoiseHG,不确定是否有任何区别。
[ui]
username=mbroekhuis
[auth]
repo.prefix=http://myrepo
repo.username=mbroekhuis
repo.password=secret