Mercurial错误:中止未提供用户名


117

第一次使用Mercurial在WindowsXP上出现问题(可能在所有Win安装中都会发生)。我在一个不明显的地方找到了答案,所以我自己问/回答这个问题,因此其他人不必像我一样进行搜索。

第一次在机器上使用Mercurial。

添加新的Repoz:

c:\bla\>hg add

没问题。

接下来,提交:

c:\bla\hg commit

错误:

中止:未提供用户名(请参阅“汞帮助配置”)


70
如何对版本控制工具的信息编程相关的?
mipadi 2010年

5
@mipadi:就像使用键盘的信息与编程无关。
Draemon 2010年

对于Mecurial来说,已经过去两年了,这确实是一个黑眼睛,这个问题仍然存在。
Celeritas

Cygwin中该死的文件在哪里?哦 如果回购是克隆或初始化的,则在(repo)/。hg中有一个
luser droog 2013年

Answers:


94

解:

在我的Windows安装中,Mercurial.ini不会传播。它还需要添加用户电子邮件。

采取Mercurial.ini在Mercurial可执行文件安装目录(C:\Program Files\Mercurial\Mercurial.ini在我的机器上)中找到的默认文件,并将其复制到用户主目录(C:\Documents and Settings\myName在winXP上)。

在Windows 7安装中,没有默认的.ini,您将需要在中创建一个新的.ini C:\Users\myName

然后编辑该.ini文件。找到这个区域。用户名需要设置电子邮件。将为空白-在此处添加您的电子邮件名称。

[ui]
; editor used to enter commit logs, etc.  Most text editors will work.
editor = notepad
username = userEmail@domain.com

这为我解决了问题。


1
我发布了此问题,希望以后可以帮助某人避免浪费时间与这个金块。
凯文(Kevin)赢得

4
实际上,我的安装目录中也没有Mercurial.ini文件。使用上述文本hgrc.hg存储库的文件夹中添加一个名为的文件,使我可以提交更改。
菲尔·甘

2
我的安装目录中也没有Mercurial.ini文件(Win 7 64位)。我在C:\ Users \ Abbas上创建了Mercurial.ini,并复制粘贴了Kevin的[ui]代码段,它的工作原理就像一个魅力。尝试了Phil的解决方案,它也起作用。
阿巴斯2010年

感谢您的提问和回答。我要花很长时间才能弄清楚。啊,在Windows上开发的艰辛...
Wes

我正在使用Tortoise Hg,该技巧也对我有帮助。谢谢 !
James Freitas

51

抱歉,您为什么称这为问题?Mercurial要求您查看hg help config,此帮助文本明确告诉您如何添加用户名-自从我写了该帮助文本以来,我就知道了:-)

我们应该如何改善错误消息以使其更加清晰?

编辑:自从我在2010年撰写此书以来,我们设法通过hg help config为所有配置设置提供帮助来解决这个问题。因此,如何设置用户名的好例子:

[ui]
username = Your Name <your@email.com>

现在已消失在噪音中(将此添加到中~/.hgrc,如有必要,创建文件)。我为此打开了一个问题


1
感谢您的解释-很高兴看到人们对所找到的解决方案进行后续跟踪:-)但是,帮助文本hg help config确实包含Windows的说明,即它列出了Mercurial.ini文件的可能位置。其中一个位置是C:\Program Files\Mercurial\Mercurial.ini(列为<install-dir>\Mercurial.ini),所以我不确定为什么该文件中的设置没有生效。
马丁·盖斯勒

13
对我来说(最大的问题)(也是让我提出这个问题的最大问题)是,在快速入门页上未提及任何内容:mercurial.selenic.com/quickstart/#。该页面表示,在未阅读帮助文本的情况下,按照说明进行基本安装将起作用,但没有效果。此时,您很紧张,因为您已经假设出了点问题
Nick Fortescue 2010年

7
@Martin Geisler:hg help config文字没有说明解决问题所需采取的措施,并且“ Windows上”部分中的路径指向的位置也不清楚。哪里%USERPROFILE%%HOME%点?我猜这mercurial.ini对我的系统上不存在以下安装没有帮助。
菲尔·甘

8
并不是要侮辱他人,所以请以此为建设性尝试。当我执行“ hg help config”时,在1260行文本中可能会有一个答案打印成标准格式,但我真的认为1260行文本过多,即使是将我发送到该文档会好得多。
Tony Giaccone 2012年

4
@TonyGiaccone:早在2010年,hg help config我只会打印一小段文字,并且我已确保设置用户名是该文字的主要示例。从那时起,我们设法通过在输出中包括所有配置选项的帮助文本来解决问题:-(我为此打开了一个问题:mercurial.selenic.com/bts/issue3348
Martin Geisler

13

在Windows XP上,我看不到ini文件。使用命令创建存储库后hg init,我hgrc在文件夹中添加了一个具有名称的文件.hg

具有以下内容:

[ui]  
editor = notepad  
username = zamboni@icemachine.com

1
hgrc.hg文件夹中提到很有帮助
E-rich

9

无论Windows还是linux,hg都会在“ /.hg/hgrc”文件中进行有效配置。如“ hg help config”中所述,您只需在该文件的末尾添加以下行:

[ui]
username = YOUR NAME <EMAIL@HOST.COM>
verbose = true

保存并“ hg commit -m'test'”


4

如果您使用的是TortoiseHg,则可以轻松添加[UI]设置

  1. 右键单击任何文件夹资源管理器以访问TortoiseHg菜单。

  2. 从弹出的TortoiseHg菜单中选择“ 全局设置”

  3. 从界面中单击编辑文件

  4. 将[UI]设置添加到末尾

[ui]

用户名= YourName

详细= true

  1. 保存并完成

3

在Windows XP上,这对我来说就像是一种魅力:

  1. C:\Program Files\Mercurial\hgrc.d假设您已将Mercurial安装到,请转到该文件夹C:\Program Files\Mercurial\
  2. 您应该Mercurial.RC在其中看到一个文件。
  3. 将文件复制到 C:\Documents and Settings\ [USERNAME]\
  4. 重命名Mercurial.RCMercurial.ini
  5. 像这样编辑[ui]部分:

    [ui]

    ; 用于输入提交日志等的编辑器。大多数文本编辑器都可以使用。

    编辑器=记事本

    详细=真

    用户名= userEmail@domain.com


也适用于Windows Server 2008和64位Mercurial msi,但第3步当然应该是c:\ users [username]
Andrew Cowenhoven 2011年

安装“带有Mercurial 2.0的TortoiseHg 2.2-x86 Windows”之后,可以在C:\ Program Files \ TortoiseHg \ hgrc.d
urig

1

我有同样的问题。什么帮助我是把[ui]username = firstname lastname在分离的线路~/.hgrc文件。将这两件事放在一行上不起作用,并导致错误。


1

此问题仍然存在。mercurial.ini不管放在哪里,都将忽略该文件。

没有mercurial.ini文件在安装过程中创建的。我在Mercurial安装目录中创建了一个目录,但没有任何效果。我先将它复制到%USERPROFILE%,然后再复制到%HOME%,但是没有一个有效。

.hgrc在主目录中的作品。

文档(“ hg帮助配置”)需要修复。


1

像这样配置.hgrc:

[ui]
username = your name <youremail@host.com>
verbose = True

注意!!不要遗漏[ui]部分


0

这是一个问题,因为在帮助文件中,指定配置文件的路径不存在,我们必须复制 Mercurial.ini从程序文件”目录到“ USER”目录,也许这是Windows上的安装程序引起的问题。

@Kevin Won:您忘记添加行:

verbose = True
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.