2009-01-01 5 views
217

Ich möchte wissen, wie man Subversion erhält, um den Namen zu ändern, unter dem meine Änderungen angezeigt werden.Kann ich in Subversion ein anderer Benutzer als mein Login-Name sein?

Ich fange gerade an, Subversion zu verwenden. Momentan nutze ich es zur Versionskontrolle auf einem XP-Laptop, wo ich immer unter dem Namen meiner Frau angemeldet bin. Ich möchte, dass die Subversion-DB die Änderungen unter meinem Namen anzeigt.

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

Schließlich 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 anruft? Ich würde etwas wie Einstellung SVN_USERNAME='Mark' erwarten, die überschreiben würde, aber es erhält normalerweise den Namen.

Update: Es sieht aus wie die --username Flag, das Michael bezeichnet hat Arbeit die Namen von "svn stat", auch für die lokale Datei gemeldet zu ändern: Repositories. Außerdem ist es sticky, so dass Sie es für den nächsten Befehl nicht angeben müssen. Ich habe sogar neu gestartet und es verwendete immer noch den "--username" Wert von meinem vorherigen Boot.

Antwort

252

Die meisten Subversion-Befehle verwenden die Option --username, um den Benutzernamen anzugeben, den Sie für das Repository verwenden möchten. Subversion merkt sich den Benutzernamen und das Kennwort des letzten Repositorys, die in jeder Arbeitskopie verwendet werden. Das bedeutet unter anderem, dass Sie bei Verwendung von svn checkout --username myuser den Benutzernamen nie erneut angeben müssen.

As Kamil Kisiel says, wenn Subversion ist das Repository direkt aus dem Dateisystem zuzugreifen (das heißt, die Repository-URL der Form ist file:///path/to/repo oder file://file-server/path/to/repo), verwendet es Ihre Berechtigungen Dateisystem auf das Repository zugreifen. Und wenn Sie connect via SSH tunneling (svn+ssh://server/path/to/repo) verwenden, verwendet SVN Ihre FS-Berechtigungen auf dem Server , wie von Ihrem SSH-Login bestimmt. In diesen Fällen funktioniert svn checkout --username möglicherweise nicht für Ihr Repository.

+0

Danke für die schnelle Antwort. Das Flag --username scheint selbst bei Neustarts sehr fest zu sein. Und es funktioniert gut für meine Datei: Repository. – markets

11

Subversion fragt mich normalerweise nach meinem "Subversion username", wenn er meinen Benutzernamen nicht benutzt. Also, wenn ich faul bin (normalerweise), lasse ich es mich nach meinem Passwort fragen und ich drücke Enter und warte auf die Eingabeaufforderung für den Benutzernamen und benutze meinen Subversion-Benutzernamen.

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

+1

Ich halte dies für eine bessere Antwort, da es für alle SVN-Befehle (checkout, commit usw.) funktioniert, wobei das Flag --username entweder nicht vorhanden oder für verschiedene Befehle leicht unterschiedlich ist ... – edwardsharp

6

Ich glaube, wenn Sie die Methode file: // verwenden, um auf Ihr Subversion-Repository zuzugreifen, werden Ihre Änderungen immer unter dem Benutzer ausgeführt, der auf das Repository zugreift. Sie müssen eine Methode verwenden, die die Authentifizierung unterstützt, z. B. http: // oder svn: //.

Siehe http://svnbook.red-bean.com/en/1.5/svn-book.html#svn.serverconfig.choosing

0

TortoiseSVN immer für Benutzername aufgefordert. (es sei denn, Sie sagen es nicht)

6

Verwenden von Subversion mit dem Apache-Modul oder Svnserve. Ich konnte Operationen als mehrere Benutzer unter Verwendung --username durchführen.

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

-3

Ich glaube, Sie können die Umgebungsvariable SVN_USER setzen, um Ihren SVN-Benutzernamen zu ändern.

+3

Können Sie eine Referenz für Das? Ich habe eine Suche gemacht und nur svn_username gefunden, das ist ein Patch, den jemand gemacht hat und ich kann nicht sagen, ob es zur Mainline geschafft hat oder nicht ... Ich würde denken, dass ich andere Treffer gefunden hätte, wenn es so wäre. – markets

+0

Ich habe es gerade versucht, und es hat nicht funktioniert (svn v1.6.17). – Tobias

69

Für SVN über ssh Versuch:

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

SVN wird Sie auffordern, für die user_name ‚s Passwort.

+6

Funktioniert auch für 'https: // benutzername @ .../pfad'. – Frank

+1

Funktioniert nicht mit Benutzernamen wie: johndoe @ Beispiel.com – neoneye

+1

'https: // benutzername @ .../pfad' funktionierte nicht für mich (cygwin) aber' --username' funktioniert gut. – zelanix

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

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

+4

Vorsicht bei der Eingabe des Kennworts in der Befehlszeile. Jeder, der die Prozessliste auf dem Computer sehen kann, kann das Passwort in der Prozessliste sehen. Gut für ein Einzelbenutzersystem, aber nicht so gut für ein Mehrbenutzersystem. – bleater

+6

Auch Ihr Passwort wird in einer sehr durchsuchbaren Shell-Befehl Geschichte aufgezeichnet ... – Phob

36

Sie können Setup einen Standard-Benutzernamen über ~/.subversion/Server:

[groups] 
yourgroupname = svn.example.com 

[yourgroupname] 
username = yourusername 

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

2

Wenn Sie svn + ssh verwenden, um eine Verbindung zum Repository herzustellen, authentifizieren und autorisieren Sie nur Ihre ssh-Anmeldedaten. Alles andere wird ignoriert. Ihr Benutzername wird genau wie in Ihrer ssh-Verbindung in subversion geloggt. Eine ausgezeichnete Erklärung hierfür ist bei jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html

12

Wenn Sie einen Benutzernamen andere als Ihr in Benutzer mit svn + ssh für die Verwendung angemeldet angeben müssen just add an entry to your .ssh/config file:

 
Host example.com 
User jdoe 
+0

man ssh_config wird Ihnen alles darüber erzählen. Ich habe noch keine Möglichkeit gefunden, diese Dynamik zu erstellen (zum Beispiel basierend auf Umgebungsvariable). – bbaassssiiee

+0

arbeitete wie ein Charme, danke – redDevil

7

Die meisten Antworten scheinen für svn zu sein + ssh, oder scheint nicht für uns zu arbeiten.

Für den HTTP-Zugriff, der einfachste Weg, um einen SVN Benutzer über die Befehlszeile, um sich abzumelden ist:

rm ~/.subversion/auth/svn.simple/*

Hutspitze: http://www.yolinux.com/TUTORIALS/Subversion.html

2

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

Danach, wenn Sie etwas tun, was SVN-Betrieb betrifft, wie commit, rm, etc ,. Sie werden erneut aufgefordert, Benutzernamen oder Passwörter einzugeben.

Verwandte Themen