2009-01-01 709 views
217

Me gustaría saber cómo obtener Subversion para cambiar el nombre con el que aparecen mis cambios.En Subversion ¿puedo ser un usuario que no sea mi nombre de usuario?

Estoy empezando a usar Subversion. Actualmente lo estoy usando para el código de control de versiones en una computadora portátil XP donde siempre estoy conectado con el nombre de mi esposa. Me gustaría que el DB de subversión muestre los cambios bajo mi nombre.

Más tarde replicaré la base de datos para que sea accesible a toda la casa. Mi esposa usa la computadora de la oficina donde siempre está conectada con mi nombre. Probablemente lo configure para que compruebe automáticamente los documentos modificados ... preferiblemente bajo su nombre.

Eventualmente probablemente lo utilice desde una máquina Linux con otro nombre de usuario.

¿Hay alguna manera de modificar el entorno del usuario para cambiar el nombre de usuario que le llama Subversion? Esperaría algo así como establecer SVN_USERNAME='Mark' que anularía sin embargo, generalmente recibe el nombre.

Actualización: Parece que la bandera --username que Michael no se refirió a trabajar para cambiar el nombre reportado por "svn stat", incluso para archivos local: repositorios. Además, es adhesivo por lo que no necesita especificarlo para el siguiente comando. Incluso reinicié y aún usé el valor "--username" de mi arranque anterior.

Respuesta

252

La mayoría de los comandos de Subversion toman la opción --username para especificar el nombre de usuario que desea usar en el repositorio. Subversion recuerda el nombre de usuario y la contraseña del último repositorio utilizados en cada copia de trabajo, lo que significa, entre otras cosas, que si usa svn checkout --username myuser, no necesita volver a especificar el nombre de usuario.

As Kamil Kisiel says, cuando Subversion está accediendo al repositorio directamente desde el sistema de archivos (es decir, la URL del repositorio es de forma file:///path/to/repo o file://file-server/path/to/repo), que utiliza los permisos del sistema de archivos para acceder al repositorio. Y cuando connect via SSH tunneling (svn+ssh://server/path/to/repo), SVN usa sus permisos FS en el servidor , según lo determine su inicio de sesión SSH. En esos casos, svn checkout --username puede no funcionar para su repositorio.

+0

Gracias por la respuesta rápida. El indicador de --username parece ser muy adhesivo, incluso a través de reinicios. Y funciona bien en mi archivo: repositorio. – markets

11

Subversion generalmente me pide mi "nombre de usuario de Subversion" si falla con mi nombre de usuario registrado. Por lo tanto, cuando soy flojo (por lo general) solo dejo que me pida mi contraseña y pulso enter, y espero el nombre de usuario y uso mi nombre de usuario de Subversion.

De lo contrario, la solución de Michael es una buena manera de especificar el nombre de usuario de inmediato.

+1

Considero que esta es una mejor respuesta porque funciona para todos los comandos SVN (pago, compromiso, etc.) donde el indicador --username parece ser inexistente o ligeramente diferente para varios comandos ... – edwardsharp

0

TortoiseSVN siempre pide nombre de usuario. (a menos que le diga que no)

6

Usando Subversion con el módulo Apache o svnserve. He podido realizar operaciones como usuarios múltiples usando --username.

Cada vez que invoque un comando de Subversion como un 'nuevo' usuario, su directorio $HOME/.subversion/auth/<authentication-method>/ tendrá una nueva entrada en caché para ese usuario (suponiendo que puede autenticarse con la contraseña correcta o el método de autenticación para el servidor que está contactando como ese usuario particular).

-3

Creo que puede establecer la variable de entorno SVN_USER para cambiar su nombre de usuario SVN.

+3

¿Puede proporcionar una referencia para ¿ese? Hice una búsqueda y solo encontré svn_username, que es un parche que alguien hizo y no puedo decir si llegó a la línea principal o no ... Creo que habría encontrado otros hits si es así. – markets

+0

Lo probé y no funcionó (svn v1.6.17). – Tobias

69

Para SVN a través de ssh intento:

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

SVN le pedirá la contraseña del user_name 's.

+6

También funciona para 'https: // user_name @ .../path'. – Frank

+1

No funciona con nombres de usuario como: johndoe @ example.com – neoneye

+1

'https: // user_name @ .../path' no funcionó para mí (cygwin) pero' --username' funciona bien. – zelanix

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

Funcionó para mí cuando estaba en otra cuenta de usuario. Sin embargo, se le pedirá que ingrese nuevamente el nombre de usuario/contraseña. Necesita iniciar sesión como el anterior una vez y está todo listo para los tiempos posteriores (a menos que reinicie su máquina).

+4

Tenga cuidado al proporcionar la contraseña en la línea de comando. Cualquiera que pueda ver la lista de procesos en la máquina podrá ver la contraseña en la lista de procesos. Está bien en un sistema de un solo usuario, pero no tan bueno en un sistema de múltiples usuarios. – bleater

+6

también, su contraseña se registra en un historial de comandos de shell muy buscable ... – Phob

36

Usted puede configurar un nombre de usuario por defecto a través de ~/.subversion/servidores:

[groups] 
yourgroupname = svn.example.com 

[yourgroupname] 
username = yourusername 

Tenga en cuenta que las versiones anteriores de SVN no lo soportan (por ejemplo, 1.3.1 [sic]).

2

Si está utilizando svn + ssh para conectarse al repositorio, lo único que lo autentica y lo autoriza son sus credenciales de ssh. TODO lo demás es ignorado. Su nombre de usuario se registrará en subversión exactamente como está establecido en su conexión ssh. Una excelente explicación de esto es en jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html

12

Si es necesario especificar un nombre de usuario que no sea su usuario conectado para su uso con svn + ssh just add an entry to your .ssh/config file:

 
Host example.com 
User jdoe 
+0

man ssh_config le dirá todo al respecto. No he encontrado manera de hacer esto dinámico (por ejemplo, basado en la variable de entorno). – bbaassssiiee

+0

trabajado como un encanto, gracias – redDevil

7

La mayoría de las respuestas parecen ser para SVN + ssh, o no parece funcionar para nosotros.

para el acceso HTTP, la forma más fácil de cerrar la sesión de un usuario SVN desde la línea de comandos es: punta

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

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

2

Ir a ~/.subversion/auth/svn.simple/*, y verá una lista de archivos que contiene la información sobre su cuenta de usuario svn. Solo borre todas las otras que no necesita.

Después de eso, cuando haces algo relacionado con el funcionamiento de SVN, como commit, rm, etc. Se le volverá a solicitar ingresar el nombre de usuario o las contraseñas.

Cuestiones relacionadas