47

我在推送到 mercurial 存储库时遇到问题:

$ hg push
pushing to https://user:***@hg.domain.com/X_repo
searching for changes
abort: authorization failed

可以通过 Web 浏览器访问相同的 URL(具有相同的凭据)。另外,我在没有将 usr+pass 嵌入 URL 的情况下进行了尝试。

HTTPS 配置正确,我尝试了 Basic 和 Digest auth —— 没有运气。

拉(通过 HTTP)工作正常。

我正在使用 hgwebdir 为我的仓库提供服务。

我还应该检查什么?

我发现了这个:http ://code.google.com/p/support/issues/detail?id=2580 在我的情况下它不是随机的,它每次都会发生。

我的虚拟主机配置的相关部分:

  WSGIScriptAlias  /  /home/(...)/hgwebdir.wsgi

  <Directory /home/(...)>
    AuthType Basic
    AuthUserFile /(...)/basic-password
    AuthName (...)
    Require valid-user

    Order deny,allow
    Allow from all
  </Directory>

$ hg -v
Mercurial Distributed SCM (version 1.0.2)

奇怪的是,hg 传出工作正常:

$ hg outgoing
comparing with https://hg.domain.com/X_repo
http authorization required
realm: ...
user: ...
password: 
searching for changes
changeset:   64:...
tag:         tip
user:        ...
date:        ...
summary:     ...
4

8 回答 8

53

如果有人想让它在本地机器上运行,那么将它添加到服务器REPO/.hg/hgrc就可以了:

[web]
allow_push = *
push_ssl = false

本网站所述。

于 2010-10-01T18:21:55.360 回答
20

问题原来是回购目录权限。chown www-data解决了...

于 2009-06-05T20:46:17.087 回答
3

很奇怪,您可以运行但不能运行因为我的理解是它们都以相同的方式进行身份验证。hg outgoinghg push

不幸的是,我不是 hgweb 专家。请邮寄到Mercurial 列表(mercurial@mercurial-scm.org) 和/或在 IRC ( #mercurialon irc.freenode.net) 上在线。那里会有更多的人来帮助你。IRC 特别好,因为这些东西更容易交互式调试。

于 2009-06-04T06:57:17.837 回答
3

对于那些将 TortoiseHg 推送到 Web 服务器的人(另一台 PC 上的另一个未经授权的用户):

在 TortoiseHg:File - Settings - (Either globally or just for the current repository - tabs)然后Server设置。网络服务器

Push Requires SSL - No
Allow Push - *

这通过 UI 执行与lukmdo上面的答案相同的操作(编辑 hgrc 文件)。

于 2013-04-29T07:08:45.007 回答
1

以防万一它可能对某人有所帮助 - 我因未知原因遇到此错误,所有权限都正常,只需重新启动 apache 即可解决。

于 2010-08-13T09:50:25.463 回答
1

我的问题有点不同。密码更改触发了它......我有一个repo/.hgrc和一个repo/.hg/hgrc。不知道为什么,但这些是相互矛盾的。

作为记录,我发现的最干净的方法是保留一个全局配置文件(在 WindowsC:\Users\<user>\mercurial.ini或 Linux上/home/<user>/.hgrc),其中包含适用于所有存储库(配置文件、插件/扩展、存储库等)的所有配置,然后每个存储库,只需使用类似的东西:

[paths]  
default = https://path/to/remote/repo

# any other repo-specific config

为什么我有另一个特定于 repo 的 mercurial 配置文件,我不知道——现在一切都已清理干净并且运行良好。

于 2016-05-24T21:12:03.667 回答
0

这发生在我更改我的 bitbucket 密码后,然后虽然我使用 SourceTree 来管理我的密码并且我在全球范围内更改了它,但是一个 repo 将我的旧密码硬编码在REPO/.hg/hgrc更改了行并且所有工作都再次

于 2014-03-17T18:56:31.213 回答
0

我的解决方案!如果您使用的是 Windows 操作系统,则需要编辑文件夹属性。读/写权限。

在此处输入图像描述

很重要!!不要忘记关闭网络服务器,编辑文件夹属性并再次打开网络服务器 tortoiseHG

于 2020-11-13T01:12:58.887 回答