2009-06-03 13 views
42

sto avendo problemi con la spinge a repository Mercurial:spinta Mercurial, interruzione: l'autorizzazione non è riuscita

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

lo stesso URL (con le stesse credenziali) è accessibile attraverso il browser web. Inoltre, l'ho provato senza incorporare usr + pass nell'URL.

HTTPS è configurato correttamente, ho provato sia l'autenticazione Basic che Digest - senza fortuna.

Il pull (tramite HTTP) funziona correttamente.

Sto usando hgwebdir per servire il mio repo.

Che altro dovrei controllare?

Ho trovato questo: http://code.google.com/p/support/issues/detail?id=2580 Nel mio caso non è casuale, succede ogni volta.

parte rilevante del mio 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) 

Stranamente hg opere in uscita ok:

$ 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:  ... 

risposta

18

Si è verificato un problema con le autorizzazioni repo dir. chown www-data risolto ...

+13

Non dimenticate che è necessario anche allow_push nella sezione [web] del .hg/hgrc –

+6

$ sudo chown -R wwwrun: www/srv/www/htdocs/hg/reposfrom https: //www.mercurial-scm .org/wiki/HgWebDirStepByStep Sezione 7, per chi non è così bravo con Linux. – bulltorious

+1

Per coloro che utilizzano Ubuntu: sudo chown -R www-data: www-data/var/hg/repos – Houman

3

E è strano che è possibile eseguire hg outgoing ma non hg push dal momento che è la mia comprensione che entrambi si autenticano allo stesso modo.

Purtroppo non sono un esperto di hgweb. Si prega di inviare una mail allo Mercurial list ([email protected]) e/o di entrare online in IRC (#mercurial su irc.freenode.net). Ci saranno molte più persone che ti aiuteranno lì. IRC è particolarmente buono poiché queste cose sono molto più facili da eseguire il debug in modo interattivo.

+1

Grazie per i suggerimenti. In realtà ho già provato IRC - senza fortuna:/proverò con la mailing list. –

1

Nel caso in cui potrebbe aiutare qualcuno - ho riscontrato questo errore per motivi sconosciuti, tutte le autorizzazioni erano OK, e solo il riavvio di Apache risolto.

48

Se qualcuno vuole farlo girare sulla macchina locale, allora l'aggiunta di questo al server REPO/.hg/hgrc farà il lavoro:

[web] 
allow_push = * 
push_ssl = false 

come descritto in this site.

+1

ho testato allow_push = * o entrambi ancora mi dà l'autenticazione fallimento –

3

Per quelli con TortoiseHg spingere a un server Web (un altro utente non autorizzato su un altro PC):

In TortoiseHg: File - Settings - (Either globally or just for the current repository - tabs) poi le impostazioni Server. Web Server

Push Requires SSL - No 
Allow Push - * 

Questo fa la stessa cosa attraverso l'interfaccia utente come risposta lukmdo s' al di sopra (la modifica del file hgrc).

0

Questo è accaduto a me dopo aver cambiato la password bitbucket, quindi anche se ho usato SourceTree per gestire la mia password e ho cambiato globaly, un repo però aveva la mia vecchia password hard-coded nel REPO/.hg/hgrc cambiato linea e tutto funziona di nuovo

0

Il mio problema era un po 'diverso. modifica della password innescato ... E ho avuto un repo/.hgrc e repo/.hg/hgrc. Non so perché, ma questi erano in conflitto.

Per la cronaca, il modo più pulito che ho trovato è di mantenere un file di configurazione globale (su Windows o Linux C:\Users\<user>\mercurial.ini/home/<user>/.hgrc) con tutta la configurazione che si applica a tutti i repository (profili, plugins/estensioni, pronti contro termine, ecc) , e poi per pronti contro termine, basta usare qualcosa come:

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

# any other repo-specific config 

Perché ho avuto un altro file di configurazione specifica Mercurial-repo, non so - ora tutto è pulito e funzionante bene.

Problemi correlati