Kann ich in Subversion ein anderer Benutzer als mein Anmeldename sein?


253

Ich möchte wissen, wie ich Subversionden Namen ändern kann, unter dem meine Änderungen angezeigt werden.

Ich fange gerade an zu benutzen Subversion. Ich verwende es derzeit zur Versionskontrolle von Codes auf einem XP-Laptop, auf dem ich immer unter dem Namen meiner Frau angemeldet bin. Ich möchte, dass die Subversion-Datenbank die Änderungen unter meinem Namen anzeigt.

Später werde ich die Datenbank replizieren, damit sie für das ganze Haus zugänglich ist. Meine Frau benutzt den Bürocomputer, auf dem sie immer unter meinem Namen angemeldet ist. Ich werde es wahrscheinlich so einrichten, dass es automatisch geänderte Dokumente eincheckt ... vorzugsweise unter ihrem Namen.

Irgendwann werde ich es wahrscheinlich von einem Linux-Rechner unter einem anderen Benutzernamen verwenden.

Gibt es eine Möglichkeit, die Benutzerumgebung zu ändern, um den Benutzernamen zu ändern, den Subversion Sie aufruft? Ich würde so etwas wie eine Einstellung erwarten, SVN_USERNAME='Mark'die überschreibt, aber normalerweise den Namen bekommt.

Update: Es sieht so aus, als würde das --usernameFlag, auf das Michael verwiesen hat, den Namen ändern, von dem berichtet wird "svn stat", selbst für lokale Datei: Repositorys. Außerdem ist es klebrig, sodass Sie es für den nächsten Befehl nicht angeben müssen. Ich habe sogar neu gestartet und es wurde immer noch der "--username"Wert von meinem vorherigen Start verwendet.

Antworten:


280

Die meisten Subversion-Befehle verwenden die --usernameOption, den Benutzernamen anzugeben, den Sie für das Repository verwenden möchten. Subversion merkt sich den letzten Repository-Benutzernamen und das Kennwort, die in jeder Arbeitskopie verwendet wurden. Dies bedeutet unter anderem, dass Sie bei Verwendung svn checkout --username myuserden Benutzernamen nie wieder angeben müssen.

Wie Kamil Kisiel sagt , verwendet Subversion beim Zugriff auf das Repository direkt vom Dateisystem aus (dh die Repository-URL hat die Form file:///path/to/repooder file://file-server/path/to/repo) Ihre Dateisystemberechtigungen, um auf das Repository zuzugreifen. Wenn Sie eine Verbindung über SSH-Tunneling ( svn+ssh://server/path/to/repo) herstellen, verwendet SVN Ihre FS-Berechtigungen auf dem Server , wie durch Ihre SSH-Anmeldung festgelegt. In diesen Fällen svn checkout --usernamefunktioniert es möglicherweise nicht für Ihr Repository.


Danke für die schnelle Antwort. Das Flag --username scheint selbst bei Neustarts sehr klebrig zu sein. Und es funktioniert gut in meiner Datei: Repository.
vermarktet

70

Für svn über ssh versuchen Sie:

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

svn fordert Sie zur Eingabe des user_namePassworts auf.


1
Funktioniert nicht mit Benutzernamen wie: johndoe@example.com
neoneye

4
https://user_name@.../pathhat bei mir nicht funktioniert (cygwin) aber --usernamefunktioniert gut.
Zelanix

44

Sie können einen Standardbenutzernamen über ~ / .subversion / servers einrichten:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

Bitte beachten Sie, dass ältere Versionen von svn dies nicht unterstützen (z. B. 1.3.1 [sic!]).


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

Arbeitete für mich in einem anderen Benutzerkonto. Sie werden jedoch aufgefordert, den Benutzernamen / das Passwort erneut einzugeben. Sie müssen sich wie oben beschrieben einmal anmelden und sind bereit für die folgenden Zeiten (es sei denn, Sie starten Ihren Computer neu).


4
Seien Sie vorsichtig, wenn Sie das Passwort in der Befehlszeile eingeben. Jeder, der die Prozessliste auf dem Computer sehen kann, kann das Kennwort in der Prozessliste sehen. Gut auf einem Einzelbenutzersystem, aber nicht so gut auf einem Mehrbenutzersystem.
Bleater


11

Subversion fragt mich normalerweise nach meinem "Subversion-Benutzernamen", wenn die Verwendung meines angemeldeten Benutzernamens fehlschlägt. Wenn ich (normalerweise) faul bin, lasse ich mich einfach nach meinem Passwort fragen und drücke die Eingabetaste. Warten Sie auf die Eingabeaufforderung für den Benutzernamen und verwenden Sie meinen Subversion-Benutzernamen.

Ansonsten ist Michaels Lösung eine gute Möglichkeit, den Benutzernamen sofort anzugeben.


1
Ich halte dies für eine bessere Antwort, da es für alle SVN-Befehle (Auschecken, Festschreiben usw.) funktioniert, bei denen das Flag --username für verschiedene Befehle entweder nicht vorhanden oder geringfügig unterschiedlich zu sein scheint ...
edwardsharp



6

Verwenden von Subversion mit dem Apache-Modul oder svnserve. Ich konnte Operationen als mehrere Benutzer ausführen --username.

Jedes Mal, wenn Sie einen Subversion-Befehl als "neuer" Benutzer aufrufen, wird in Ihrem $HOME/.subversion/auth/<authentication-method>/Verzeichnis ein neuer Eintrag für diesen Benutzer zwischengespeichert (vorausgesetzt, Sie können sich mit dem richtigen Kennwort oder der richtigen Authentifizierungsmethode für den Server authentifizieren, den Sie als diesen bestimmten Benutzer kontaktieren). .


2

Wenn Sie svn + ssh verwenden, um eine Verbindung zum Repository herzustellen, sind das einzige, was Sie authentifiziert und autorisiert, Ihre ssh-Anmeldeinformationen. ALLES andere wird ignoriert. Ihr Benutzername wird in Subversion genau so angemeldet, wie es in Ihrer SSH-Verbindung festgelegt ist. Eine ausgezeichnete Erklärung hierfür finden Sie unter jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html


2

Gehen Sie zu ~/.subversion/auth/svn.simple/*, und Sie sehen eine Liste der Dateien, die die Informationen zu Ihrem SVN-Benutzerkonto enthalten. Löschen Sie einfach alle anderen, die Sie nicht benötigen.

Wenn Sie danach alles tun, was den SVN-Betrieb betrifft, wie z. B. Festschreiben, rm usw. Sie werden erneut aufgefordert, einen Benutzernamen oder ein Passwort einzugeben.


-1

TortoiseSVN fordert immer zur Eingabe des Benutzernamens auf. (es sei denn, Sie sagen es nicht)


Nein, tut es nicht. Zumindest nicht unter 1.9.5 für Linux.
Drkvogel

Standardmäßig wird Ihr lokaler Benutzername verwendet. Dies ist nicht immer das, was Sie möchten, wenn Sie eine Verbindung zu einem Remote-Repository herstellen.
Drkvogel

-3

Ich glaube, Sie können die SVN_USERUmgebungsvariable so einstellen , dass Ihr SVN-Benutzername geändert wird.


3
Können Sie eine Referenz dafür liefern? Ich habe eine Suche durchgeführt und nur svn_username gefunden, ein Patch, den jemand gemacht hat, und ich kann nicht sagen, ob er es bis zur Hauptlinie geschafft hat oder nicht ... Ich würde denken, ich hätte andere Treffer gefunden, wenn ja.
vermarktet
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.