web-dev-qa-db-fra.com

Nom d'utilisateur SVN

J'ai trouvé de nombreux exemples sur la façon de changer le nom d'utilisateur pour des révisions spécifiques, etc.

Mais ce dont j'ai besoin est la suivante: j'ai effectué une extraction avec les informations d'authentification d'un collègue et je dois les remplacer par mes informations d'authentification pour les prochains commits.

Je ne peux pas simplement passer à la caisse avec mes identifiants en raison des nombreux changements déjà effectués ...

Quelqu'un au courant de ça?

82
axel freudiger

Vous pouvez changer d'utilisateur avec

  • Subversion 1.6 et versions antérieures:

    svn switch --relocate protocol://currentUser@server/path protocol://newUser@server/path
    
  • Subversion 1.7 et versions ultérieures:

    svn relocate protocol://currentUser@server/path protocol://newUser@server/path
    

Pour savoir quoi protocol://currentUser@server/path est, cours

svn info

dans votre copie de travail.

73
Ingo Kegel

Pour ce faire, le plus simple consiste à utiliser simplement l’option --username lors de votre prochaine commande ou validation. Par exemple:

svn commit --username newUser

ou

svn co --username newUser

Il sera ensuite mis en cache et sera utilisé comme nom d'utilisateur par défaut pour les commandes futures.

Voir aussi: Dans Subversion, puis-je être un utilisateur autre que mon nom d'utilisateur?

62
Matt Browne

J'ai eu exactement le même problème et j'ai trouvé la solution Où le client SVN stocke-t-il les données d'authentification des utilisateurs? :

  1. cd à ~/.Subversion/auth/.
  2. Faire fgrep -l <yourworkmatesusernameORtheserverurl> */*.
  3. Supprimer le fichier trouvé.
  4. La prochaine opération sur le référentiel vous demandera à nouveau des informations de nom d’utilisateur/mot de passe.

(Pour Windows, les étapes sont analogues. Le répertoire auth se trouve dans %APPDATA%\Subversion\).

Notez que cela ne fonctionnera que pour les schémas d’accès SVN où le nom d’utilisateur fait partie de la connexion au serveur. Il n’est donc pas utile pour les référentiels auxquels on accède via file://.

52
Raphael Schweikert

<< C'est très simple. Vous devriez juste exécuter

svn up --username newUserName

C'est ça. >>

Fonctionne parfaitement, juste un indice: cela peut être fait sur n’importe quelle commande svn, pas seulement la mise à jour.

10
Aurimas

Si votre protocole est http et que vous utilisez Subversion 1.7, vous pouvez changer d'utilisateur à tout moment en utilisant simplement l'option --username dans n'importe quelle commande.

Quand la méthode d'Ingo n'a pas fonctionné pour moi, c'est ce que j'ai trouvé qui a fonctionné.

5
Adam Nutt

Aller à Tortoise SVN --> Settings --> Saved Data.

Il existe une option pour effacer les données d'authentification, cliquer sur le bouton effacer, et cela vous permettra de sélectionner la connexion pour laquelle vous voulez effacer l'ID utilisateur/pwd.

Après cela, toute activité de commande ou de mise à jour sera répétée pour l'ID utilisateur et le mot de passe.

3
Wan

De plus, pour ceux qui se sont rendus compte trop tard qu'ils avaient commis avec de mauvaises références, la solution (après le fait) est de changer l'auteur de cette révision: voir cette question

La syntaxe est la suivante:

svn propset --revprop -r (revision_number) svn:author (new username)
1
Patrice M.

pour Win10, vous devez supprimer ce dossier et fermer/ouvrir votre IDE

C:\Utilisateurs\Utilisateur\AppData\Roaming\Subversion\auth

, également dans mes projets, aucun dossier ".Subversion", uniquement ".svn"

1
bratez

Basé sur solution d'Ingo Kegel , j'ai créé un "petit" script bash pour changer le nom d'utilisateur dans tous les sous-dossiers. Se souvenir de:

  1. Remplacez <NEW_USERNAME> Par le nouveau nom d'utilisateur.
  2. Remplacez <OLD_USERNAME> Par le nom d'utilisateur actuel (si aucun nom d'utilisateur n'est actuellement défini, supprimez simplement <OLD_USERNAME>@).

Dans le code ci-dessous, la commande svn est uniquement imprimée (non exécutée). Pour que la commande svn soit exécutée, supprimez simplement le echo et les espaces devant lui (juste au-dessus de popd).

for d in */ ; \
do echo $d ; pushd $d ; \
url=$(svn info | grep "URL: svn") ; \
url=$(echo ${url#"URL: "}) ; \
newurl=$(echo $url | sed "s/svn+ssh:\/\/<OLD_USERNAME>@/svn+ssh:\/\/<NEW_USERNAME>@/") ; \
echo "Old url: "$url ; echo "New url: "$newurl ; \
echo svn relocate $url $newurl ; \
popd ; \
done

J'espère que vous le trouverez utile!

0
zpon

Je pense que vous pouvez créer votre propre branche (en utilisant vos propres informations d'identification) à partir du même tronc que la branche de votre collègue de travail, fusionner de la branche de votre collègue de travail à votre copie de travail, puis fusionner à partir de votre branche. Tout futur engagement devrait être marqué comme venant de vous.

0
Martin

Vous pouvez demander à votre collègue de créer un correctif qui regroupera toutes les modifications apportées dans un seul fichier que vous pourrez appliquer à votre propre extraction. Cela mettra à jour tous vos fichiers de manière appropriée et vous pourrez ensuite annuler les modifications de son côté et archiver les vôtres.

0
Alex