在家里,这完美无缺。我现在在另一台计算机上(使用cygwin)并且hg push不会提示输入用户名/密码:
user@localhost /cygdrive/d/repos/upthescala/viewprotect
$ hg push https://viewprotect.googlecode.com/hg/
pushing to https://viewprotect.googlecode.com/hg/
searching for changes
abort: http authorization required
以下是〜/ .hgrc的内容:
[http_proxy]
host=someproxy:8080
[ui]
username = My Name <myemail>
提前感谢任何建议!
注意:这似乎是一个cygwin问题。当我从Windows提示符(cmd.exe)尝试时,它按预期工作:
D:\repos\upthescala\viewprotect>hg push https://viewprotect.googlecode.com/hg/
pushing to https://viewprotect.googlecode.com/hg/
searching for changes
http authorization required
realm: Google Code Mercurial Repository
user: myemailaddress
password: *********
remote: Success.
- LES
答案 0 :(得分:8)
这可能是因为使用了与Windows控制台子系统绑定的Mercurial版本。与Tortoise一起发布的二进制文件属于这一类。如果是这种情况,mercurial期望使用控制台子系统来提示输入凭据,但是从Cygwin shell运行时它找不到它。在我的情况下,安装和使用Cygwin版本的mercurial修复了问题,除了修复颜色输出。要检查您正在使用的版本,请运行'which hg'(但您可能已经知道)。
答案 1 :(得分:8)
添加安德鲁的评论:
安装并使用Cycurwin版本的mercurial修复了这个问题,
这也解决了我的问题,但它引起了另一个问题,花了我一些时间才弄明白。当使用Cygwin版本的hg时,在我运行hg status
时,在TortoiseHG下克隆的所有文件都显示为已修改,但在我运行hg diff
时没有显示任何差异。
问题是权限不匹配。在每个仓库中运行chmod 644 .* -R
解决了这个问题。
答案 2 :(得分:6)
由于它是HTTP,您始终可以将用户名和密码放在URL中。这适用于使用http auth和任何浏览器的任何网站。
hg push https://myemailaddress:*********@viewprotect.googlecode.com/hg/
或者,较新的Mercurial版本可以使用auth section。
顺便说一下,这是一个可怕的密码。你应该拿出比八星更好的东西。