2011-11-21 12 views
9

Estoy desarrollando en un Mac y usando un servidor svn en otra máquina usando svn_ssh Mientras pude hacer un check-in y check-out inicial no puedo hacer un commit desde la línea de comando porque el sistema intenta usar mi nombre jondoe local (y solicita una contraseña) cuando me conecto al servidor remoto donde mi nombre de usuario es johnd.cómo comprometerse con svn cuando el nombre de usuario remoto difiere del local?

Entonces, ¿cómo puedo decirle al svn + ssh que use johnd para mis confirmaciones?

Respuesta

6
  1. copia de seguridad de los cambios (sólo los archivos modificados, no debe sobrescribir .svn directorio)
  2. Pedido de nuevo, pero ahora usando su nombre de usuario remoto

    svn checkout svn+ssh://<ssh_username>@<svn host domain>/<server repository path> 
    
  3. Restaurar los cambios de copia de seguridad

  4. Commit them

    svn commit -m 'Description' 
    

Acabo de verificar y me he comprometido con diferentes nombres de usuario locales y SSH.

+0

Gracias pero da el error: svn: debe dar ruta local (no URL) como el objetivo de una confirmación. Intenté de esta manera: svn commit -m 'Resumen de cambios'. svn + ssh: // my-username @ my-server/my-home/my-repo solo usando. for myfiles –

+0

reeditó por completo mi respuesta, ahora está probado –

+0

ok que parece haber funcionado pero volveré a publicar aquí si empiezo a recibir el mismo error más adelante. Tuve que modificar sus instrucciones para que funcionase, porque cuando lo hice fracasó diciendo que 'Myapp ya es una copia de trabajo para una URL diferente'. así que simplemente moví el directorio de Myapp a MyappXYZ y luego tu sugerencia funcionó. Había pensado hacerlo de esta manera, pero esperaba no hacerlo ya que sospecho que el error volverá a ocurrir, ya que es más o menos de la misma manera en que originalmente revisé mi proyecto. Gracias. Gracias –

27

Uso --username opción

svn commit --username johnd 
+0

sino que los rendimientos de otro error: SVN SVN --username johnd : confirmación fallida (detalles a continuación): SVN: Sistema ('vim SVN-commit.tmp') devuelto 256 SVN: Su mensaje fue dejado en comprometerse un archivo temporal: svn: '/Users/johndoe/development/Myapp/svn-commit.tmp' –

+1

@Calgacus - Tengo una Mac y uso el mismo tipo de sintaxis para establecer el nombre de usuario de Subversion. Cuando le das '--username', debería haber pedido una contraseña. También puede pasar una contraseña a través del parámetro '--password'.Me pregunto si el problema que tienes es con el comando 'vim' y no con el comando svn. Pruebe 'svn commit --user johnd -m" commit description "' que omite 'vim' para ingresar el mensaje de confirmación. –

+0

@Calgacus: parece que svn no pudo encontrar su editor predeterminado. Establezca las variables de entorno 'EDITOR' o' SVN_EDITOR' de forma adecuada o pase el mensaje de confirmación por la opción '-m'. Ver también [esta pregunta] (http://stackoverflow.com/q/2008609/72178). – ks1322

2

En su ~/.ssh/config, añadir una sección como esta:

Host svn.example.com 
User johnd 

Reemplazar svn.example.com con el nombre de host del servidor SVN.

Esto funcionará para todas las conexiones ssh, no solo para las relacionadas con subversión.

Consulte también la página de manual ssh_config, que puede leer ejecutando man ssh_config en un intérprete de comandos.

Cuestiones relacionadas