代码之家  ›  专栏  ›  技术社区  ›  les2

如何让hg在cygwin/windows上提示输入HTTP身份验证用户名/密码?

  •  10
  • les2  · 技术社区  · 16 年前

    在家里,这很管用。我现在在另一台计算机上(使用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
    

    [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.
    

    -- 发射脱离系统

    3 回复  |  直到 16 年前
        1
  •  8
  •   Andrew Pritchard    15 年前

    这可能是由于使用了绑定到Windows控制台子系统的Mercurial版本造成的。与乌龟一起分布的二进制数就属于这一类。如果是这种情况,mercurial希望使用控制台子系统来提示输入凭据,但在从Cygwin shell运行时找不到凭据。在我的例子中,安装和使用CygWin版本的MyalIIL除了修复颜色输出外,还解决了这个问题。要检查正在使用的版本,请运行“which hg”(但您可能已经知道)。

        2
  •  8
  •   Jerry    15 年前

    要添加到安德鲁的评论中:

    安装和使用Cygwin版本的mercurial解决了这个问题,

    这也解决了我的问题,但它引起了另一个问题,我花了一些时间来解决。当使用hg的Cygwin版本时,在TortoiseHG下克隆的所有文件在我运行 hg status ,但在我运行 hg diff .

    问题是权限不匹配。跑步 chmod 644 .* -R 每次回购都解决了这个问题。

        3
  •  6
  •   Ry4an Brase    16 年前

    因为它是HTTP,所以你可以把用户名和密码放在URL中。它可以在任何使用http auth的网站和任何浏览器中工作。

    hg push https://myemailaddress:*********@viewprotect.googlecode.com/hg/
    

    或者,新的Mercurial版本有一个 auth section 你可以用。

    推荐文章