En Subversion, ¿puedo ser un usuario que no sea mi nombre de usuario?


253

Me gustaría saber cómo Subversioncambiar el nombre con el que aparecen mis cambios.

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é el DB 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 registre automáticamente los documentos modificados ... preferiblemente bajo su nombre.

Eventualmente lo usaré desde una máquina Linux con otro nombre de usuario.

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

Actualización: Parece que la --usernamebandera a la que se refirió Michael funciona para cambiar el nombre informado "svn stat", incluso para archivos locales: repositorios. Además, es pegajoso, por lo que no necesita especificarlo para el siguiente comando. Incluso reinicié y todavía usó el "--username"valor de mi arranque anterior.

Respuestas:


280

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

Como dice Kamil Kisiel , cuando Subversion accede al repositorio directamente desde el sistema de archivos (es decir, la URL del repositorio es de forma file:///path/to/repoo file://file-server/path/to/repo), utiliza los permisos del sistema de archivos para acceder al repositorio. Y cuando se conecta a través de un túnel SSH ( 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 --usernamepuede no funcionar para su repositorio.


Gracias por la rápida respuesta. La bandera --username parece ser muy pegajosa, incluso en los reinicios. Y funciona bien en mi archivo: repositorio.
comercializa el

70

Para svn sobre ssh intente:

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

svn le pedirá la user_namecontraseña de.


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

44
https://user_name@.../pathno funcionó para mí (cygwin) pero --usernamefunciona bien.
zelanix

44

Puede configurar un nombre de usuario predeterminado a través de ~ / .subversion / Server:

[groups]
yourgroupname = svn.example.com

[yourgroupname]
username = yourusername

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


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

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


44
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 usuario único, pero no tan bueno en un sistema multiusuario.
bleater


11

Subversion generalmente me pide mi "nombre de usuario de Subversion" si falla al usar mi nombre de usuario conectado. Entonces, cuando soy flojo (por lo general), solo dejaré que me pida mi contraseña y presionaré enter, y esperaré la solicitud del nombre de usuario y usaré 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 (checkout, commit, etc.) donde la bandera --username parece no existir o es ligeramente diferente para varios comandos ...
edwardsharp 03 de



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



2

Vaya a ~/.subversion/auth/svn.simple/*y verá una lista de archivos que contiene la información sobre su cuenta de usuario svn. Simplemente elimine todos los demás que no necesita.

Después de eso, cuando haga algo relacionado con la operación de SVN, como commit, rm, etc. Se le pedirá nuevamente que ingrese el nombre de usuario o las contraseñas.


-1

TortoiseSVN siempre solicita nombre de usuario. (a menos que le diga que no lo haga)


No, no lo hace. No en 1.9.5 para Linux, al menos.
drkvogel

Utiliza su nombre de usuario local de forma predeterminada, que no siempre es lo que desea cuando se conecta a un repositorio remoto.
drkvogel

-3

Creo que puede configurar la SVN_USERvariable de entorno para cambiar su nombre de usuario SVN.


3
¿Puedes proporcionar una referencia para eso? Hice una búsqueda y encontré solo 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 resultados si es así.
comercializa el
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.