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

ten*_*ent 75 mercurial

当我在Mercurial中提交这样的东西时:

hg commit -m "username question"
Run Code Online (Sandbox Code Playgroud)

我看到这个输出:

No username found, using 'WindowsVistaAdmin@ChunkyMonkey' instead
Run Code Online (Sandbox Code Playgroud)

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

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

tgh*_*ghw 114

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

[ui]
username = First Last <email@address.com>
Run Code Online (Sandbox Code Playgroud)

(mercurial.ini适用于C:\Documents and Settings\[username]\XP及更低版本,C:\Users\[username]\适用于Vista及更高版本.hgtk userconfig如果安装了TortoiseHg,也可以运行,并按此方式执行.)

  • 在OSX 10.8上,我不得不自己创建.hgrc文件. (2认同)

fry*_*ter 27

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

hg --config ui.username=frymaster -m "comment here" commit
Run Code Online (Sandbox Code Playgroud)

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

[section]
key=val
Run Code Online (Sandbox Code Playgroud)

直接翻译成

hg --config section.key=val
Run Code Online (Sandbox Code Playgroud)

  • 哦,没关系。你说的是“--config”而不是“config”:它是其他命令的选项,用于命令级覆盖......仍然不是我想要的。GRRR...为什么我不能只输入“hg config -l ui.username=这个存储库的用户名”。这将允许轻松实现身份设置别名:“[alias] Identity1=config -l ui.username=我预先编写的用户信息已准备好指定用于许多新克隆的具有各种相关身份的存储库”。 (2认同)

And*_*gan 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文件; 详见下文.

  • Stackoverflow是在谷歌不以简洁易懂的格式提供信息时创建的. (10认同)
  • 是否有可能按存储库设置用户名? (7认同)
  • @edomaur,是的,你必须在相关的存储库中编辑`./hg/hgrc`文件,你需要在`[ui]`部分设置`username = Dev server` (4认同)

Mat*_*uis 6

这是我的 windows /users/xxx/mercurial.ini 的外观。我无需输入任何内容的用户名或密码。看起来它可能是特定于回购协议的。我安装了 tortoiseHG,不确定这是否有什么区别。

[ui]
username=mbroekhuis

[auth]
repo.prefix=http://myrepo
repo.username=mbroekhuis
repo.password=secret
Run Code Online (Sandbox Code Playgroud)

  • 我认为以明文形式保存密码不是一个好主意。 (2认同)