2009-03-03 13 views
29

Ich benutze git-svn mit ein paar Arbeitsprojekten und ich habe festgestellt, dass ich für fast jede Aktion, die ich mache, zur Eingabe meines Svn-Passworts aufgefordert werde. Bei manchen Aktionen werde ich mehrmals aufgefordert (vermutlich gibt es hinter den Kulissen mehrere Aktionen). Wenn Sie beispielsweise ein Repository klonen, werden Sie fünfmal aufgefordert, bevor das Klonen tatsächlich beginnt.Speichert Git-Svn Svn Passwörter?

Projekte, für die ich Svn verwende, tun dies nicht direkt. Wird das erwartet? Kann ich irgendetwas tun, um meine Anmeldedaten zwischenzuspeichern?

Danke.

Antwort

33

Ich musste das auth-Verzeichnis alle zusammen löschen und Subversion erlauben, es für mich neu aufzubauen. Nichts anderes schien zu funktionieren. Für alle, die nicht wissen, ist das Auth-Verzeichnis in ~/.subversion (Mac/Linux).

+0

Danke! In meinem Fall unter Windows funktionierte das, weil in meiner Passwortdatei passype = wincrypt (und hatte ein verschlüsseltes Passwort), das ich von TortoiseSVN config migriert habe.Nach dem Löschen funktionierte es wie gesagt, aber jetzt speichert es das Passwort im Klartext (passtype = simple). Vermutlich war es nicht kompatibel mit Wincrypt oder irgendetwas anderem ... – Dan

3

Sie sollten SVN fragen Sie Ihre Anmeldeinformationen cachen:

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

jedoch, wie in der Frage SO Subversion ignoring “—password” and “—username” options erwähnt, zu überprüfen, was genau Sie für ein Kennwort auffordert.

+2

Jede Indikation I (oder verstehen, zumindest) ist, dass Svn das Passwort ganz gut erkennt. Nur wenn ich git-svn benutze, werde ich aufgefordert. Ich kann den ganzen Tag svn-Operationen machen, ohne mein Passwort eingeben zu müssen. –

0

Ich hatte ein ähnliches Problem. Anfangs war ich auf einem Remote-CentOS-Server versucht, alle Remote-SVN-Zweige zu greifen, sie zu einem sauberen Ursprung als wahren git Zweig für eine harte cutover aus dem SVN zu schieben git über:

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

wo es ~ 240-ish entfernte Zweige. (Es gab keine Möglichkeit, dass ich für jeden dieser Züge mein Passwort eingab)

Was ich am Ende getan habe, war, den Repo auf meinen lokalen Rechner (einen Mac) zu scannen und es dem Schlüsselbund zu ermöglichen, das Passwort zu verarbeiten Zwischenspeichern. Ich habe alle svn Commits lokal gezogen und dann meinen Repo zurück auf den entfernten Rechner kopiert.

3

Ich hatte ein ähnliches Problem in Sierra. svn funktionierte gut mit den gespeicherten Anmeldeinformationen, aber git svn würde die gespeicherten Anmeldeinformationen nicht verwenden und forderte erneut auf, sie erneut einzugeben.

Die Lösung für mich war, den gespeicherten Schlüssel im Schlüsselbund zu löschen, und dann git svn vor jedem anderen Programm zu verwenden. Wenn git svn das Programm zum Speichern des Kennworts im Schlüsselbund war, wurden die Berechtigungen ordnungsgemäß festgelegt. Sobald git svn verwendet wurde, um den Eintrag im Schlüsselbund zu erstellen, konnte normal svn verwendet werden und auf den Schlüssel zugreifen, der von git svn erstellt wurde. Zu diesem Zeitpunkt würden beide das Repository ohne Probleme verwenden und ohne dass ich zur Eingabe des Kennworts aufgefordert wurde die ganze Zeit.

Wenn ein anderes Programm das Passwort im Schlüsselbund festgelegt hat, dann hatte dieses Programm keine Probleme, aber git svn würde keine Erlaubnis erhalten.

+2

Danke, Paul! Das hat mich verrückt gemacht. Entfernen des Schlüsselbundelements, das der von git-svn angezeigten Eingabeaufforderung entspricht ('Authentifizierungsbereich: Geben Sie Ihren Benutzernamen und Ihr Kennwort für zzz SVN ein) und die Einstellung mit git-svn funktioniert wie du beschreibst: – Nuthatch

2

Vielleicht eine dumme Idee, aber ich fand git-svn wurde erneut aufgefordert, für das Passwort auch nach dem Zurücksetzen der Schlüsselbund-Eintrag. Also habe ich die Zugriffskontrolle für diesen Artikel geändert, damit "alle Anwendungen" darauf zugreifen können. Scheint zu arbeiten?

Keychain item Access Control