2008-09-17 9 views
52

Je suis sur un ordinateur portable (Ubuntu) avec un réseau qui utilise un proxy HTTP (seules les connexions http sont autorisées).
Lorsque j'utilise svn up pour url comme 'http: // .....' tout est cool (google chrome repository fonctionne parfaitement), mais maintenant j'ai besoin de svn up du serveur avec 'svn: // .. .. 'et je vois la connexion refusée.
J'ai défini la configuration du proxy dans/etc/subversion/servers mais cela n'aide pas.
Quelqu'un at-il une opinion/solution?
svn over HTTP proxy

+1

Cette question m'a absolument aidé après 5 ans sur toute la ligne !! – slayedbylucifer

+0

copie de (apparemment sur le sujet) question: http://stackoverflow.com/questions/1491180/how-to-configure-a-http-proxy-for-svn et http://stackoverflow.com/questions/16649199/how-do-i-configure-the-svn-http-proxy-from-the-command-line – michael

Répondre

62

en /etc/subversion/servers vous définissez http-proxy-host, qui n'a rien à voir avec svn:// qui se connecte à un autre serveur exécutant habituellement sur le port 3690 a commencé par commande svnserve.

Si vous avez accès au serveur, vous pouvez configurer svn+ssh:// comme explained here.

Mise à jour: Vous pouvez également essayer d'utiliser connect-tunnel, qui utilise votre serveur proxy HTTPS pour les connexions tunnel:

connect-tunnel -P proxy.company.com:8080 -T 10234:svn.example.com:3690 

Ensuite, vous utiliserez

svn checkout svn://localhost:10234/path/to/trunk 
+0

Excellent, je cherchais quelque chose comme ça. +1 pour vous, bon monsieur. – Ibrahim

+19

il y a aussi '~/.subversion/servers' – akavel

+1

vérifiez cela, cela fonctionne vraiment [solution] (http://vikashazrati.wordpress.com/2009/01/25/http-proxy-sv/) – Vervatovskis

0

lorsque vous utilisez le svn: // URI il utilise le port 3690 et ne sera probablement pas utiliser http proxy

0

svn: // ne parle pas http, à cet effet il n'y a rien un proxy http pouvait faire.

Une raison pour laquelle http ne fonctionne pas? Avez-vous considéré https? Si vous en avez vraiment besoin, vous devez probablement avoir le port 3690 ouvert dans votre pare-feu.

2

Si vous pouvez y accéder, vous pouvez utiliser un serveur SVN SSH.

Utilisez SSHs -L (ou -R, je l'oublie, il me confond toujours) pour faire un tunnel ssh pour que

127.0.0.1:3690 est vraiment la connexion à distance: 3690 sur le tunnel ssh, et vous pouvez l'utiliser via

svn co svn://127.0.0.1/.... 
+0

Serveur distant sur windows pour SSH J'utilise le tunneling HTTP en utilisant tire-bouchon –

0

Si vous utilisez la norme SVN installation la connexion svn: // fonctionnera sur le port TCP 3690 et donc il est pratiquement impossible de se connecter à moins de changer la configuration de votre réseau (vous avez dit que le trafic Http est autorisé) ou d'installer le module http et Apache sur le serveur hébergeant votre SVN serveur.

0

D'accord, ce sujet est quelque peu dépassée, mais comme je l'ai trouvé sur Google et une solution cela pourrait être intéressant pour quelqu'un:

En gros (bien sûr) ce n'est pas possible sur chaque proxy http, mais fonctionne sur les proxies permettant la connexion http sur le port 3690. Cette méthode est utilisée par les proxies http sur le port 443 pour fournir un moyen de sécuriser les connexions https. Si votre administrateur configure le proxy pour ouvrir le port 3690 pour http connect, vous pouvez configurer votre machine locale pour établir un tunnel via le proxy.

J'étais juste dans le besoin de vérifier certains fichiers de svn.openwrt.org au sein de notre réseau d'entreprises. Une solution simple pour créer un tunnel est d'ajouter la ligne suivante à votre/etc/hosts

127.0.0.1 svn.openwrt.org

Ensuite, vous pouvez utiliser socat pour créer un tunnel tcp à un port local:

while true; faire socat tcp-écouter: 3690 proxy: proxy.at.votre.société: svn.openwrt.org: 3690; done

Vous devez exécuter la commande en tant qu'utilisateur root. Il ouvre le port local 3690 et, lors de la connexion, crée un tunnel vers svn.openwrt.org sur le même port. Il suffit de remplacer les adresses de port et de serveur par vos propres besoins.

45

Ok, cela devrait être très simple:

$ sudo vi /etc/subversion/servers 

Modifier le fichier:

[Global] 
http-proxy-host=my.proxy.com 
http-proxy-port=3128 

Enregistrer, exécutez à nouveau svn et il fonctionnera.

+1

Aussi, assurez-vous d'utiliser http: // dans l'URL de repo, plutôt que svn: // –

+10

Le fichier 'servers' sur Windows est à: ~ \ AppData \ Roaming \ Subversion \ servers – bart

+0

Aussi, assurez-vous de le modifier sous * [global] * en-tête dans le fichier comme dillera dit, pas sous * [groupes] * qui apparaît en premier dans le fichier. – Taylor