내 클라이언트 작업을 위한 로컬 HG 저장소가 있습니다. 이전 버전의 OS X에서는 아무런 문제 없이 HG 서버를 구성했지만 Yosemite에서는 멈췄습니다. 저는 MacPorts의 수은 패키지를 사용하고 자체 서명된 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/