Changement de nom d'utilisateur dans SVN+SSH URI à la volée dans la copie de travail
Je suis en utilisant SVN+SSH pour extraire une copie de travail de référentiel à partir d'un serveur SVN sur lequel tous les développeurs sont membres d'un developer
groupe et avoir plein autorisations de lecture/écriture sur le répertoire de dépôt et de métadonnées associées:
svn co svn+ssh://[email protected]/path/to/repository
Plusieurs développeurs de travailler sur la même copie de travail qui est vérifié en vertu d'un partagées compte shell (root
). Parce que ce référentiel est utilisé pour la configuration de contrôle de révision, dans un environnement de production, c'est inévitable. Donner à chaque développeur d'un individu compte shell sur la machine cible (celui sur lequel la caisse est en train d'être fait) serait un moyen de résoudre ce problème, car alors ils peuvent avoir chacun leur propre copie de travail, mais malheureusement ce n'est pas acceptable ici.
Nous avons divers post-commit crochets qui envoient des e-mails détaillant s'engage, y compris le nom d'utilisateur de la personne qui a commis le changement.
Le problème est qu'une fois la copie de travail est vérifié avec un nom d'utilisateur à l'aide de la svn+ssh://
schéma d'URI, les validations et les mises à jour semblent aussi être fait sous ce nom d'utilisateur. Ce n'est pas viable pour deux raisons:
1) La personne qui a fait la caisse peut ne pas être la personne qui fait un commit maintenant, et nous avons besoin de la post-commit e-mails et autres post-commit crochets de savoir exactement qui a fait le commit, et
2) de toute évidence, un commit exige que la commission de l'utilisateur de connaître le mot de passe du compte de la personne qui a pris la caisse, l'utilisation de clés RSA pour l'authentification non interactive malgré ce que la raison n ° 1.
Est-il un moyen de faire passer dynamiquement le nom de la télécommande compte qui est utilisé pour l'authentification dans ce scénario?
J'ai fait quelques recherches et trouvé cette question auparavant:
Modification du nom d'utilisateur pour une Subversion s'engager sur svn+ssh
Malheureusement, la suggestion de la accepté de répondre (svn switch
) ne fonctionne pas:
[root@db repo-directory]# svn switch svn+ssh://[email protected]/u/svc/repositories/repo-name
[email protected]'s password:
svn: 'svn+ssh://[email protected]/u/svc/repositories/repo-name' is not the same
repository as 'svn+ssh://[email protected]/u/svc/repositories/repo-name'
Toutes les idées seraient grandement appréciés. Merci d'avance pour votre attention!
OriginalL'auteur Alex Balashov | 2009-11-09
Vous devez vous connecter pour publier un commentaire.
Il fonctionne avec ssh+svn si vous modifiez votre client config: $HOME/.subversion/config tunnels section:
Merci. Je voudrais seulement ajouter que, pour bénéficier de votre suggestion, il est vraiment important de caisse au dépôt, sans ajouter explicitement le nom d'utilisateur dans le svn url. Cela signifie que vous ne devez exécuter la commande "svn co svn+ssh://svn.serveur/chemin/vers/dépôt"
highlevelbits note une alternative: vous pouvez spécifier l'hôte des noms d'utilisateurs.
OriginalL'auteur qrtalaci
Ah, eh bien, jamais l'esprit. Il semble que
svn switch --relocate
fait le truc:C'est gênant, cependant. Si il y a un moyen plus facile, je suis ouvert aux suggestions.
Évidemment, on peut écrire une
bash
alias ou un shell-script pour automatiser cette partie, je suppose, mais je voudrais qu'il soit plus simple.export SVN_SSH="ssh -l newuser"
dans un terminal. Qui s'est avéré être la solution la plus simple pour moi.OriginalL'auteur Alex Balashov
Que vous pourriez faire une simple mise à jour avec un autre nom d'utilisateur, trop.
Je dois avouer que je havn'pas essayé avec protocole
svn+ssh
. Mais il fonctionne avec le protocolehttp
et pas seulement avec svnserve.OriginalL'auteur tangens