2013-05-20 3 views
11

J'écris la configuration de mon environnement de construction. (Ainsi, le processus de construction peut s'autoamorcer s'il se trouve dans une image propre).Comment configurer le proxy HTTP SVN à partir de la ligne de commande?

Dans le cadre de ce processus, certaines dépendances sont extraites des référentiels SVN publics. Les machines de génération se trouvent derrière un proxy, j'ai donc besoin de configurer SVN pour utiliser le proxy.

Plusieurs des options qui viennent immédiatement à l'esprit sont désagréables pour diverses raisons:

  • je pourrais modifier les ~/.subversion/serveurs de fichiers manuellement, mais je garderais bien plutôt le processus de construction comme auto contenu et aussi automatisé que possible.
  • Alternativement, je pourrais "proxy" les divers dépôts publics de subversion avec un dépôt interne de "dépendances", mais ceci s'ajoute au nombre de parties mobiles qui doivent être maintenues.
  • Enfin, je pourrais écrire un script pour vérifier le fichier de configuration et le modifier (si nécessaire), mais cela semble être trop compliqué pour ce qui devrait être une partie triviale du processus de construction.

Idéalement, je devrais pouvoir spécifier le proxy à partir de la ligne de commande, mais il n'est pas évident que cela soit possible. Quelle est la bonne façon d'aborder ce problème?

+0

OK, donc il semble que je peux utiliser les commandes suivantes pour définir le proxy (que je dois encore tester): svn propset serveurs --config-options: global: http-proxy-host = ; svn propset --config-option serveurs: global: http-proxy-port = (Cependant: le proxy pour nos navigateurs est réglé automatiquement, donc je travaille encore si j'ai besoin de télécharger et d'analyser le script de configuration du proxy). –

Répondre

15

SVNBook à la rescousse!

  1. Comme vous l'avez déjà mentionné, vous pouvez ajouter des options de configuration SVN pour svn client en ligne de commande.

    Voir SVNBook | --config-option command-line reference.

    Définit, pour la durée de la commande, la valeur d'une option de configuration . CONFSPEC est une chaîne qui spécifie l'espace de noms, le nom et la valeur de l'option de configuration que vous souhaitez affecter , formaté comme FICHIER: SECTION: OPTION = [VALEUR]. Dans cette syntaxe, FILE et SECTION sont le fichier de configuration d'exécution (soit config ou serveurs) et la section de celui-ci, respectivement, qui contiennent l'option dont vous souhaitez modifier la valeur. OPTION est, bien sûr, l'option elle-même, et VALUE la valeur (le cas échéant) que vous souhaitez attribuer à l'option . Par exemple, pour désactiver temporairement l'utilisation de la fonction de paramètre de propriété automatique, utilisez --config-option = config: miscellany: enable-auto-props = no. Vous pouvez utiliser cette option plusieurs fois pour modifier simultanément plusieurs valeurs d'option .

    Voici la ligne de commande exemple:

    svn checkout ^
    --config-option servers:global:http-proxy-host=<PROXY-HOST> ^
    --config-option servers:global:http-proxy-port=<PORT> <REPO-URL> <LWC-DIR>

  2. Ou utilisez --config-dir au point svn client de ligne de commande dans le fichier de configuration personnalisée.

    --config-dir DIR

    charge Subversion pour lire les informations de configuration à partir du répertoire spécifié au lieu de l'emplacement par défaut (dans .subversion répertoire de l'utilisateur).

+0

Eh bien, l'option de configuration ne semble pas très bien fonctionner, car j'obtiens les deux erreurs suivantes: svn: option invalide --config-option serveurs: global: http-proxy-port = svn: option invalide --config -option servers: global: http-proxy-host = .... J'essaie maintenant l'option --config-dir à la place. –

+2

Il m'a fallu un peu de temps pour comprendre, mais la commande complète à utiliser est: svn checkout --config-option serveurs: global: http-proxy-host = --config-option serveurs: global: http-proxy- port =

+1

@WilliamPayne merci pour la mise à jour! Je vais mettre cette ligne de commande dans la réponse comme un échantillon. – bahrep

Questions connexes