2013-02-26 18 views
17

Sto provando a eseguire il mirror di un repository SVN utilizzando git-svn.Impossibile eseguire il recupero di git-svn dietro al proxy

che sto facendo

git svn clone http://worldwind31.arc.nasa.gov/svn/trunk/WorldWind 

e sto ottenendo

Initialized empty Git repository in f:/gstest/WorldWind/.git/ 
RA layer request failed: PROPFIND request failed on '/svn/trunk/WorldWind': PROPFIND of '/svn/trunk/WorldWind': could not connect to server (http://worldwind31.arc.nasa.gov) at /usr/lib/perl5/site_perl/Git/SVN.pm line 148 

Se lo faccio lo stesso su un altro computer che non è all'interno della delega è ok.

Sono su un win7, e ho impostato $HTTP_PROXY, http.proxy (quello globale in git) e $HOME/AppData/Roaming/Subversion/servers al proxy corretto.

Fare svn checkout [repo adress] in una shell funziona. Il funzionamento di wget [repo adress] in una shell funziona. Ma non git svn clone [repo adress]

Qualche idea? La maggior parte delle domande che ho trovato su questo mi indirizza al file Subversion/servers, ma ora ho modificato quello e il problema è ancora lì ...:/

risposta

29

Ho avuto lo stesso identico problema.

E la soluzione è trovare la directory di configurazione di Subversion corretta. Almeno nel mio caso il codice nativo svn.exe utilizza il file C:\Users\MYUSER\AppData\Roaming\Subversion\servers, ma git-svn utilizza ~/.subversion/servers. E intendo questo percorso ~/.subversion/servers nella shell Git Bash, dove ~ viene espanso nella posizione corretta. Modificare ~/.subversion/servers allo stesso modo di quello utilizzato da svn.exe e quindi git svn clone dovrebbe funzionare.

In breve, la chiave è trovare il file di configurazione corretto da modificare, in quanto è possibile che siano presenti più di essi in Windows.

+0

Questo ha risolto il mio problema, e mi sento piuttosto stupido per non averlo riconosciuto inizialmente ... Ho cercato tutti i file chiamati "server" sui dischi fissi locali e ne ho trovato uno solo. Quindi quello è stato quello che ho modificato. (C: \ Users \ MYUSER \ AppData \ Roaming \ Subversion \ servers) Tuttavia, sul mio posto di lavoro il catalogo di casa è mappato anche su un'unità di rete. E c'era un file M: ​​\. Subversion \ servers che non ho trovato la prima volta .... :(quando ho modificato quel git svn ha funzionato come un incantesimo. Grazie! – bjarven

+0

Questo ha risolto il mio problema, grazie mille ! –

11

Per ottenere svn funzionare dietro un proxy su linux , aggiorna il file ~/.subversion/servers con i dettagli del proxy.

[global] 
# http-proxy-exceptions = *.exception.com, www.internal-site.org 
http-proxy-host = YOURPROXY.com 
http-proxy-port = YOURPORT 
# http-proxy-username = defaultusername 
# http-proxy-password = defaultpassword 
# http-compression = no 
# http-auth-types = basic;digest;negotiate 
# No http-timeout, so just use the builtin default. 
# No neon-debug-mask, so neon debugging is disabled. 
# ssl-authority-files = /path/to/CAcert.pem;/path/to/CAcert2.pem 

Credo che ci sia una configurazione simile a windows ...

+0

Sì, penso che dovrebbe essere equivalente a C: \ Users \ [me] \ AppData \ Roaming \ Subversion \ servers, almeno il file ha lo stesso aspetto. E l'ho modificato, ma non funziona comunque:/ – bjarven

+0

Questo è un peccato. Mi dispiace, non ho potuto aiutarti a risolvere il tuo problema. Cosa ti dice Google? –

+0

Grazie per lo sforzo! Google mi dice praticamente la stessa cosa, modifica in .subversion/servers ... C'è un modo per vedere quali impostazioni proxy sono effettivamente usate con git-svn? Forse una sorta di impostazione verbosa per 'git svn clone' o 'git svn fetch'? – bjarven

5

Di solito, le variabili di ambiente da soli:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

sono sufficienti per far funzionare correttamente git o git-svn.

Ma quello che mi viene è l'esatto URL da usare.
Per esempio:

  • HTTP_PROXY=wwww.myproxy.company:8080 non funziona, ma
  • HTTP_PROXY=http://wwww.myproxy.company:8080 funzionerà.

Utilizzare lo stesso per HTTPS_PROXY, che significa la stessa http indirizzo (ho provato prima mettendo un URL HTTPS per la HTTPS_PROXY, ma che non è come funziona)

Naturalmente, se avete bisogno di l'autenticazione, è possibile (almeno per scopi di test) aggiungere il login/passname in esso:

HTTP_PROXY=http://myLogin:[email protected]:8080 

E aiuta l'impostazione della NO_PROXY uno troppo: localhost,*.company.


Quindi il punto principale alla base di questa risposta è "doppio verificare l'URL esatto che si sta utilizzando" (e testarlo con un semplice curl http://www.google.com, o con wget, sia dal pacchetto msysgit o da Gnu On Windows)

+0

Interessante, ci proverò questo lunedì! Penso di aver inserito HTTP_PROXY senza 'http: //' – bjarven

+0

@bjarven che sarebbe un errore classico. Ho perso ore su quello ... – VonC

+0

Nessuna fortuna ... Dopo aver incluso "http: //" nelle impostazioni del proxy, il problema rimane. Posso fare wget google.com, tuttavia quando lo faccio mostra ancora il mio proxy senza 'http: //'. Mi chiedo se tronca via 'http: //' o se è ancora senza ...:/Se faccio wget sull'indirizzo del repository svn posso collegarmi anche a questo. – bjarven

0

Dai un'occhiata a C: \ Users \ YOU \ .subversion \ servers per le impostazioni. Siete alla ricerca di qualcosa dentro questo file come ...

[global] 
# http-proxy-exceptions = *.exception.com, www.internal-site.org 
http-proxy-host = 127.0.0.1 
http-proxy-port = 3128 

... Queste impostazioni sono per CNTLM. Decommenta le righe che ho decomposto sopra & inserisci i tuoi dettagli. Ci sono campi per le password, ecc. Risolto il problema per me che ricevevo materiale da Sourceforge. Sì, Sourceforge è ancora lì.

Inoltre, CNTLM è grande per ottenere tramite NTLM, all'avanguardia ecc Run Fiddler2 & impostare le regole per "autenticazione automatica" su true per raccogliere qualsiasi autenticazione che CNTLM manca. Gli aggiornamenti di Chrome sono una cosa che Fiddler risolve per me.

0

Per me la soluzione era solo per cambiare url in config. Perché non ero in grado di accedere a quello esistente. Per verificare ho semplicemente effettuato l'accesso all'urea di repository usando il mio browser. In caso di utilizzo di URL proibito ho ottenuto '403 Proibito'.

Problemi correlati