私はクライアントの仕事のためにローカル HG リポジトリを持っています。OS X の以前のバージョンでは問題なく HG サーバーを設定しましたが、Yosemite では行き詰まっています。MacPorts の mercurial パッケージを使用し、自己署名 SSL 証明書で apache を設定しましたが、ほぼ準備は整っています... hgweb は正常に動作し、プルして他のコマンドを実行できます。
しかし、私はプッシュできません:
$ hg push --debug --traceback -v
pushing to https://localhost/hg/website.com
using https://localhost/hg/website.com
sending capabilities command
using auth.default.* for authentication
localhost certificate matched fingerprint ************
using auth.default.* for authentication
http auth: user mike, password ************
using auth.default.* for authentication
localhost certificate matched fingerprint ************
query 1; heads
sending batch command
using auth.default.* for authentication
searching for changes
all remote heads known locally
sending branchmap command
using auth.default.* for authentication
sending branchmap command
using auth.default.* for authentication
preparing listkeys for "bookmarks"
sending listkeys command
using auth.default.* for authentication
1 changesets found
list of changesets:
c05e7b9045cf27f7508dcaaace632ba8a9940c4e
bundling: 1/1 changesets (100.00%)
bundling: 1/1 manifests (100.00%)
bundling: file1.txt 1/2 files (50.00%)
bundling: file2.txt 2/2 files (100.00%)
sending unbundle command
sending 12141 bytes
using auth.default.* for authentication
sending: 11/22 kb (50.00%)
sending: 11/22 kb (50.00%)
Traceback (most recent call last):
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial/dispatch.py", line 138, in _runcatch
return _dispatch(req)
...
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial/httppeer.py", line 172, in _call
fp = self._callstream(cmd, **args)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial/httppeer.py", line 122, in _callstream
raise util.Abort(_('authorization failed'))
Abort: authorization failed
abort: authorization failed
ユーザー名とパスワードは正しいです... hgweb インターフェースで機能し、前の手順 (行 8) で上記の出力でも機能しました。リポジトリの権限も何度も確認しましたが... _www ユーザーにフル アクセス権があります。
$ ls -al /var/repos/website.com
total 0
drwxrwxr-x 3 _www staff 102 Oct 19 23:34 .
drwxrwxr-x 11 _www staff 374 Oct 27 02:09 ..
drwxrwxr-x 10 _www staff 340 Oct 19 23:34 .hg
HG バージョン: 3.1.2、OSX バージョン: 10.10、Apache バージョン: 2.4.9
ご協力やご提案がございましたら、ぜひよろしくお願いいたします。
答え1
答えを見つけました。なぜこれで問題が解決するのかはわかりませんが、問題のリポジトリの .hg ディレクトリ (ローカルのクローン ディレクトリではありません) に hgrc ファイルを作成し、次のコードを追加するだけで済みました。
[web]
allow_push = *
セットアップの別の部分をデバッグしようとしているときにこの答えを見つけた人のために、Yosemite での Mercurial のセットアップ全体のチュートリアルがあります。
http://www.curvingspace.com/2014/11/05/mercurial-on-yosemite/