2009-03-03 13 views
29

J'utilise git-svn avec quelques projets de travail et j'ai remarqué que pour à peu près toutes les actions que je fais, je suis invité à entrer mon mot de passe Svn. Pour certaines actions, je suis sollicité plusieurs fois (probablement parce que b/c il y a plusieurs actions qui se passent dans les coulisses). Par exemple, lors du clonage d'un référentiel, je suis invité 5 fois avant que le clonage ne commence réellement.Est-ce que Git-Svn Store Svn passe?

Les projets pour lesquels j'utilise directement Svn ne le font pas. Est-ce prévu? Y at-il quelque chose que je peux faire pour mettre en cache mes informations d'identification?

Merci.

Répondre

33

J'ai fini par devoir supprimer le répertoire auth ensemble et permettre à Subversion de le reconstruire pour moi. Rien d'autre ne semblait fonctionner. Pour ceux qui ne le savent pas, le répertoire auth se trouve dans ~/.subversion (Mac/Linux).

+0

Merci! Dans mon cas, sur Windows, cela a fonctionné parce que dans mon fichier de mot de passe, passtype = wincrypt (et avait un mot de passe crypté) que j'ai migré à partir de TortoiseSVN config.En le supprimant, cela a fonctionné comme vous l'avez dit, mais maintenant il enregistre le mot de passe en clair (passtype = simple). Vraisemblablement, ce n'était pas compatible avec wincrypt ou quoi que ce soit d'autre ... – Dan

3

Vous devriez demander SVN pour mettre en cache vos informations d'identification:

# $ svn update --username 'user2' --password 'password' 
# [email protected]'s password: 

Cependant, comme dans la question mentionné SO Subversion ignoring “—password” and “—username” options, vérifier ce qui vous demande exactement un mot de passe.

+2

Chaque indication je (ou comprendre, au moins) est que Svn reconnaît le mot de passe très bien. C'est seulement quand j'utilise git-svn que je suis invité. Je peux faire des opérations svn toute la journée sans avoir à entrer mon mot de passe. –

0

J'ai eu un problème similaire. Dans un premier temps, j'étais sur un serveur CentOS à distance en essayant de saisir toutes les branches à distance svn pour les pousser à une origine propre comme de véritables branches git pour les coupes à blanc dur de svn git via:

for remote in `git branch -r` ; do git checkout $remote; git pull; done 

où il y avait ~ 240 ish branches distantes. (Je ne pouvais pas mettre mon mot de passe pour chacun de ces tirages)

Ce que j'ai fini par faire était scp'ing le repo à ma machine locale (un mac) et permettre à keychain de gérer le mot de passe mise en cache J'ai tiré tous les svn commits locaux et ensuite copié mon repo à la machine distante.

3

J'ai eu un problème similaire dans Sierra. svn a bien fonctionné avec les informations d'identification stockées, mais git svn n'utiliserait pas les informations d'identification stockées et continuerait de demander leur réinscription.

La solution pour moi était de supprimer la clé stockée dans le trousseau, puis d'utiliser git svn avant tout autre programme. Si git svn était le programme pour stocker le mot de passe dans le trousseau, les autorisations ont été correctement définies. Une fois git svn a été utilisé pour créer l'entrée dans le trousseau, alors svn pourrait être utilisé, et autorisé à accéder à la clé créée par git svn, à ce stade, ils utiliseraient le référentiel sans aucun problème, et sans que je sois invité pour le mot de passe tout le temps.

Si un autre programme définissait le mot de passe dans le trousseau, alors ce programme n'avait aucun problème, mais git svn ne serait pas autorisé.

+2

Merci, Paul! Cela me rendait fou. Suppression de l'élément du trousseau correspondant à l'invite affichée par git-svn ('Domaine d'authentification: Entrez votre nom d'utilisateur et mot de passe pour zzz SVN'), puis définissez en utilisant git-svn works comme tu décris: – Nuthatch

2

Peut-être une idée stupide, mais j'ai trouvé que git-svn demandait à nouveau le mot de passe même après avoir réinitialisé l'entrée du trousseau. J'ai donc changé le contrôle d'accès pour cet élément afin que "toutes les applications" puissent y accéder. Ça semble fonctionner?

Keychain item Access Control

Questions connexes