2011-01-21 20 views
13

Il mio IDE non sa che utilizzo Subversion e ogni volta che rinominare una classe (Java) rinomina il file senza avvisare il sistema di controllo della versione. Mi piacerebbe ovviamente che la storia del file venisse mantenuta. Capisco che in TortoiseSVN c'è un'opzione chiamata "repair move" che corregge la mossa, ma non è un'opzione da quando sono su Ubuntu. C'è un modo per riparare la mossa dalla riga di comando?SVN "repair move" dalla riga di comando

+2

ho guardato nel codice sorgente TortoiseSVN, sposta il file indietro manualmente e quindi "svn move" s indietro alla sua destinazione. Certo, posso farlo con la riga di comando, sto solo chiedendo se c'è un modo più semplice. –

+1

Si potrebbe voler menzionare il proprio IDE: ci sono molti strumenti specifici per IDE. – shaunmartin

+0

@shaunmartin, è davvero importante quale IDE sta usando qui? –

risposta

12

Se vi ricordate il vecchio nome/posizione del file:

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

Voi, naturalmente, hanno bisogno del client di Subversion a riga di comando installato, che probabilmente avete. In caso contrario, sudo aptitude install subversion subversion-client dovrebbe fare il trucco.

Per il tuo commento, no, non so che c'è un modo più semplice di questo. Se non sei sicuro di quale fosse il tuo vecchio nome file, svn stat potrebbe darti un suggerimento.

+1

+1, questo potrebbe essere anche copiato –

+0

Stavo solo cercando questa domanda per un collega e ho trovato [questo] (http://www.syntevo.com/smartsvn/documentation.html?page=commands.detect-moves) che è piuttosto interessante se si ha un intero carico di file spostati. – Benjol

3

C'è un modo per riparare lo spostamento dalla riga di comando?

No, questo è SVN issue 1802. È stato aperto dal 2003, quindi non trattenere il respiro.

5

Aggiungi questo al vostro .bashrc

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

allora si può digitare

svn-repair old-filename new-filename 
+1

non dovrebbe l'uso essere 'svn-repair old-filename new-filename'? – chiccodoro

+0

Sì! risolto ora :) – ndyer