2011-01-21 22 views
13

Mi IDE no sabe que utilizo Subversion, y cada vez que cambio el nombre de una clase (Java) cambia el nombre del archivo sin notificar al sistema de control de versiones. Por supuesto, me gustaría que se conserve el historial del archivo. Entiendo que en TortoiseSVN hay una opción llamada "movimiento de reparación" que arregla el movimiento, pero esa no es una opción ya que estoy en Ubuntu. ¿Hay alguna forma de reparar el cambio desde la línea de comandos?SVN "movimiento de reparación" desde la línea de comandos

+2

Miré en el código fuente de TortoiseSVN, se mueve el archivo de nuevo manualmente y luego "svn move" es de nuevo a su destino Por supuesto, puedo hacer eso con la línea de comandos, solo estoy preguntando si hay una manera más fácil. –

+1

Es posible que desee mencionar cuál es su IDE: hay muchas herramientas IDE específicas. – shaunmartin

+0

@shaunmartin, ¿realmente importa qué IDE está usando aquí? –

Respuesta

12

Si recuerda el antiguo nombre/ubicación del archivo:

mv new-filename old-filename 
svn mv old-filename new-filename 

Usted, por supuesto, necesita instalar el cliente de Subversion de línea de comandos, lo que es probable que tenga. Si no, sudo aptitude install subversion subversion-client debería hacer el truco.

Según su comentario, no, no sé si hay una manera más fácil que esto. Si no está seguro de cuál era su nombre de archivo anterior, svn stat puede darle una pista.

+1

+1, esto también podría estar en el script –

+0

Estaba investigando esta pregunta para un colega y encontré [esto] (http://www.syntevo.com/smartsvn/documentation.html?page=commands.detect-moves) que es bastante genial si tienes una carga completa de archivos movidos. – Benjol

3

¿Hay alguna manera de reparar el cambio desde la línea de comandos?

No, esto es SVN issue 1802. Ha estado abierto desde 2003, así que no contenga la respiración.

5

Agregue esto a su .bashrc

svn-repair() { mv -n -- "$2" "$1" && svn mv -- "$1" "$2"; } 

entonces se puede escribir

svn-repair old-filename new-filename 
+1

¿no debería el uso ser 'svn-repair old-filename new-filename'? – chiccodoro

+0

¡Sí! lo arregló ahora :) – ndyer

Cuestiones relacionadas