J'utilise SVN + SSH pour extraire une copie de travail du référentiel d'un serveur SVN sur lequel tous les développeurs sont membres d'un groupe developer
et ont une lecture/écriture complète autorisations sur le répertoire de dépôt et les métadonnées associées:Modification du nom d'utilisateur dans SVN + SSH URI à la volée dans la copie de travail
svn co svn+ssh://[email protected]/path/to/repository
Plusieurs développeurs travaillent sur la même copie de travail qui est extrait sous un compte shell partagé (root
). Étant donné que ce référentiel est utilisé pour le contrôle des révisions de configuration dans un environnement de production, cela est inévitable. Donner à chaque développeur un compte shell individuel sur la machine cible (celui sur lequel la vérification est effectuée) serait une façon de résoudre ce problème car ils pourraient alors chacun avoir leur propre copie de travail, mais malheureusement ce n'est pas acceptable ici.
Nous avons divers hooks post-commit qui envoient des e-mails détaillant les validations, y compris le nom d'utilisateur de la personne qui a commis le changement. Le problème est qu'une fois qu'une copie de travail est extraite avec un nom d'utilisateur donné en utilisant le schéma URI svn+ssh://
, les validations et les mises à jour semblent également devoir être effectuées sous ce nom d'utilisateur. Ce n'est pas viable pour deux raisons:
1) La personne qui a fait la caisse à l'origine peut ne pas être la personne qui fait une validation maintenant, et nous avons besoin des courriels post-commit et d'autres hooks post-commit pour savoir exactement qui a fait la validation, et
2) clairement, une validation nécessite que l'utilisateur qui s'engage connaisse le mot de passe du compte de la personne qui a fait la commande originale, l'utilisation des clés RSA pour l'authentification non interactive nonobstant 1.
Existe-t-il un moyen de remplacer dynamiquement le nom d'utilisateur du compte distant utilisé pour l'authentification dans ce scénario?
je fait quelques recherches et trouvé cette question auparavant:
Changing the username for a Subversion commit over svn+ssh
Malheureusement, la suggestion contenue dans la réponse acceptée (svn switch
) ne fonctionne pas:
[[email protected] 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é. Merci d'avance pour votre considération!
Si vous voulez changer votre utilisateur pour svn + ssh, essayez d'exécuter 'exportation SVN_SSH = "ssh -l newuser"' dans un terminal. Cela s'est avéré être la solution la plus simple pour moi. – marktani