web-dev-qa-db-ja.com

Mercurialプッシュ、中止:認証に失敗しました

Mercurialリポジトリへのプッシュに問題があります。

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

同じURL(同じ資格情報を使用)には、Webブラウザーからアクセスできます。また、URLにusr + passを埋め込まずに試してみました。

HTTPSが正しく設定されているため、基本認証とダイジェスト認証の両方を試しましたが、うまくいきませんでした。

(HTTPを介した)プルは正常に機能します。

私はhgwebdirを使用してリポジトリを提供しています。

他に何を確認する必要がありますか?

私はこれを見つけました: http://code.google.com/p/support/issues/detail?id=258 私の場合、それはランダムではなく、毎回発生します。

私のvhost confの関連部分:

  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:     ...
46
Piotr Byzia

問題は、リポジトリのパーミッションであることが判明しました。 chown www-data解決しました...

20
Piotr Byzia

ローカルマシンで実行したい場合は、これをサーバーに追加しますREPO/.hg/hgrcは仕事をします:

[web]
allow_Push = *
Push_ssl = false

このサイト で説明されています。

52
lukmdo

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ファイルを編集)と同じことを行います。

3
lko

実行できるのはis奇妙ですhg outgoing だがしかし hg Pushどちらも同じ方法で認証されることが私の理解です。

残念ながら、私はhgwebのエキスパートではありません。 Mercurialリスト[email protected])にメールするか、IRC(#Mercurial オン irc.freenode.net)。そこにあなたを助ける多くの人々がいるでしょう。 IRCは、インタラクティブにデバッグする方がはるかに簡単なので、特に優れています。

3
Martin Geisler

それが誰かを助けるかもしれない場合に備えて-私は未知の理由でこのエラーに遭遇しました、すべての許可はOKでした、そしてApacheを再起動するだけでそれは解決しました。

1
Kjetil Limkjær

私の問題は少し異なっていました。パスワードの変更によってトリガーされました...そしてrepo/.hgrcrepo/.hg/hgrc。理由は不明ですが、これらは矛盾していました。

記録として、私が見つけた最もクリーンな方法は、グローバル構成ファイルを保持することです(WindowsでC:\Users\<user>\Mercurial.iniまたはLinux /home/<user>/.hgrc)すべてのリポジトリに適用されるすべての構成(プロファイル、プラグイン/拡張機能、リポジトリなど)を使用し、リポジトリごとに次のようなものを使用します。

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

# any other repo-specific config

なぜ別のリポジトリ固有のMercurial構成ファイルがあったのかわかりません-今ではすべてがクリーンアップされ、うまく機能しています。

1
nicorellius

これは、bitbucketパスワードを変更した後に起こりました。SourceTreeを使用してパスワードを管理し、グローバルに変更しましたが、1つのリポジトリでREPO/.hg/hgrcに古いパスワードがハードコードされていたため、行が変更され、すべてが再び機能しました

0
Moak