Problema de autorização Mercurial em Yosemite

0

Eu tenho um repositório HG local para o trabalho do meu cliente. Eu configurei o servidor HG antes em versões anteriores do OS X sem problemas, mas no Yosemite estou preso. Eu usei o pacote mercurial do MacPorts, configurei o apache com um certificado SSL auto-assinado e estou pronto para ir ... o hgweb funciona bem, e eu posso puxar e fazer outros comandos.

No entanto, não posso enviar:

$ 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

O nome de usuário e a senha estão corretos ... eles trabalham na interface hgweb e até trabalharam na saída acima durante etapas anteriores (linha 8). Eu também verifiquei as permissões do repositório várias vezes ... o usuário _www tem acesso total:

$ 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

Versão HG: 3.1.2, versão OSX: 10.10, versão Apache: 2.4.9

Qualquer ajuda ou sugestão seria muito apreciada - obrigado antecipadamente!

    
por Mike979 27.10.2014 / 07:40

1 resposta

1

Eu encontrei a resposta. Não tenho certeza porque isso corrige, mas tudo que eu tive que fazer foi criar um arquivo hgrc no diretório .hg do repositório em questão (não o diretório local clonado), e adicionar:

[web]
allow_push = *

Caso alguém encontre essa resposta ao tentar depurar uma parte diferente da configuração, aqui está um tutorial para toda a configuração do Mercurial no Yosemite.

link

    
por 06.11.2014 / 04:37