Dans Subversion, puis-je être un utilisateur autre que mon nom de connexion?


253

Je voudrais savoir comment Subversionchanger le nom sous lequel mes modifications apparaissent.

Je commence tout juste à utiliser Subversion. Je l'utilise actuellement pour contrôler le code de version sur un ordinateur portable XP où je suis toujours connecté sous le nom de ma femme. J'aimerais que la DB de subversion montre les changements sous mon nom.

Plus tard, je répliquerai la base de données afin qu'elle soit accessible à toute la maison. Ma femme utilise l'ordinateur de bureau où elle est toujours connectée sous mon nom. Je vais probablement le configurer pour qu'il vérifie automatiquement les documents modifiés ... de préférence sous son nom.

Finalement, je vais probablement l'utiliser à partir d'une machine Linux sous un autre nom d'utilisateur.

Existe-t-il un moyen de modifier l'environnement utilisateur pour changer le nom d'utilisateur que Subversion vous appelle? Je m'attendrais à quelque chose comme un paramètre SVN_USERNAME='Mark'qui remplacerait, mais il obtient généralement le nom.

Mise à jour: il semble que l' --usernameindicateur auquel Michael a fait référence fonctionne pour changer le nom signalé par "svn stat", même pour le fichier local: référentiels. De plus, il est collant, vous n'avez donc pas besoin de le spécifier pour la prochaine commande. J'ai même redémarré et il utilisait toujours la "--username"valeur de mon démarrage précédent.

Réponses:


280

La plupart des commandes Subversion prennent l' --usernameoption pour spécifier le nom d'utilisateur que vous souhaitez utiliser dans le référentiel. Subversion se souvient du dernier nom d'utilisateur et mot de passe du référentiel utilisés dans chaque copie de travail, ce qui signifie, entre autres, que si vous utilisez, svn checkout --username myuservous n'avez plus besoin de spécifier à nouveau le nom d'utilisateur.

Comme le dit Kamil Kisiel , lorsque Subversion accède au référentiel directement depuis le système de fichiers (c'est-à-dire que l'URL du référentiel est de forme file:///path/to/repoou file://file-server/path/to/repo), il utilise les autorisations de votre système de fichiers pour accéder au référentiel. Et lorsque vous vous connectez via SSH tunneling ( svn+ssh://server/path/to/repo), SVN utilise vos autorisations FS sur le serveur , telles que déterminées par votre connexion SSH. Dans ces cas, svn checkout --usernamepeut ne pas fonctionner pour votre référentiel.


Merci pour la réponse rapide. L'indicateur --username semble être très collant, même lors des redémarrages. Et cela fonctionne très bien sur mon fichier: référentiel.
marchés

70

Pour svn sur ssh, essayez:

svn list svn+ssh://[user_name]@server_name/path_to_repo  

svn vous demandera le user_namemot de passe de.


1
Ne fonctionne pas avec les noms d'utilisateur comme: johndoe@example.com
neoneye

4
https://user_name@.../pathn'a pas fonctionné pour moi (cygwin) mais --usernamefonctionne très bien.
zelanix

44

Vous pouvez configurer un nom d'utilisateur par défaut via ~ / .subversion / servers:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

Veuillez noter que les anciennes versions de svn ne le prennent pas en charge (par exemple 1.3.1 [sic!]).


37
"svn co --username=yourUserName --password=yourpassword http://path-to-your-svn"

A fonctionné pour moi lorsque sur un autre compte d'utilisateur. Vous serez invité à saisir à nouveau le nom d'utilisateur / mot de passe. Vous devez vous connecter une fois comme ci-dessus et vous êtes prêt pour les heures suivantes (à moins que vous ne redémarriez votre machine).


4
Soyez prudent lorsque vous fournissez le mot de passe sur la ligne de commande. Quiconque peut voir la liste des processus sur la machine pourra voir le mot de passe dans la liste des processus. Très bien sur un système mono-utilisateur, mais pas si bon sur un système multi-utilisateurs.
bleater


11

Subversion me demande généralement mon "nom d'utilisateur Subversion" s'il échoue en utilisant mon nom d'utilisateur connecté. Donc, quand je suis paresseux (généralement), je le laisse simplement me demander mon mot de passe et je clique sur Entrée, j'attends l'invite du nom d'utilisateur et j'utilise mon nom d'utilisateur Subversion.

Sinon, la solution de Michael est un bon moyen de spécifier immédiatement le nom d'utilisateur.


1
Je considère que c'est une meilleure réponse car cela fonctionne pour toutes les commandes SVN (checkout, commit, etc.) où l'indicateur --username semble être soit inexistant soit légèrement différent pour diverses commandes ...
edwardsharp



6

Utilisation de Subversion avec le module Apache ou svnserve. J'ai pu effectuer des opérations en utilisant plusieurs utilisateurs --username.

Chaque fois que vous appelez une commande Subversion en tant que `` nouvel '' utilisateur, votre $HOME/.subversion/auth/<authentication-method>/annuaire aura une nouvelle entrée mise en cache pour cet utilisateur (en supposant que vous pouvez vous authentifier avec le mot de passe ou la méthode d'authentification correcte pour le serveur que vous contactez en tant que cet utilisateur particulier) .


2

Si vous utilisez svn + ssh pour vous connecter au référentiel, la seule chose qui vous authentifie et vous autorise est vos informations d'identification ssh. TOUT le reste est ignoré. Votre nom d'utilisateur sera enregistré dans subversion exactement comme il est établi dans votre connexion ssh. Une excellente explication de ceci est sur jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html


2

Accédez à ~/.subversion/auth/svn.simple/*et vous verrez une liste de fichiers contenant les informations sur votre compte utilisateur svn. Supprimez simplement toutes les autres dont vous n'avez pas besoin.

Après cela, lorsque vous faites quoi que ce soit concernant le fonctionnement de SVN, comme commit, rm, etc. Vous serez invité à nouveau à saisir votre nom d'utilisateur ou vos mots de passe.


-1

TortoiseSVN demande toujours le nom d'utilisateur. (à moins que vous ne le lui disiez)


Non, ce n'est pas le cas. Pas sur 1.9.5 pour Linux, au moins.
drkvogel

Il utilise votre nom d'utilisateur local par défaut, ce qui n'est pas toujours ce que vous voulez lorsque vous vous connectez à un référentiel distant.
drkvogel

-3

Je crois que vous pouvez définir la SVN_USERvariable d'environnement pour changer votre nom d'utilisateur SVN.


3
Pouvez-vous fournir une référence pour cela? J'ai fait une recherche et trouvé seulement svn_username, qui est un patch que quelqu'un a fait et je ne peux pas dire s'il est parvenu à la ligne principale ou non ... Je pense que j'aurais trouvé d'autres hits si c'était le cas.
commercialise le
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.