2011-11-15 16 views
142

Se voglio buttare via tutte le mie modifiche e tornare al codice che si trova sul repository, mi effettuare le seguenti operazioni:Il comando svn ha un comando `revert-all`?

$ rm -fr * 
$ svn up 

Questo è abbastanza facile, ma mi chiedo se c'è un unico comando che raggiungere questo obiettivo, qualcosa come:

$ svn revert-all 
+0

che usa -fr invece di rf? C'è un motivo per cui è pronunciato rimraf, non rimfer. –

+0

@JimmyHoffa Qual è il motivo? –

+1

convention's Wilson! Convenzioni, signore! Senza la nostra disciplina e le tradizioni culturali, siamo solo selvaggi! Dico, buongiorno signore! –

risposta

275

si potrebbe fare:

svn revert -R . 

Questo non cancellerà nessun nuovo file non sotto controllo di versione. Ma si può facilmente scrivere uno script di shell per farlo come:

for file in `svn status|grep "^ *?"|sed -e 's/^ *? *//'`; do rm $file ; done 
+1

Benvenuti in SO, e grazie per una risposta approfondita, come 'svn revert -R' non è equivalente ai due comandi che ho dato. –

+1

Per rimuovere tutti i file non sotto controllo di versione nella riga di comando di Windows, la risposta è qui: http://stackoverflow.com/a/1502365/1385429 –

+0

Utente [mashzo] (http://stackoverflow.com/users/3745505/ mashzo) ha sottolineato (in una risposta ora cancellata) che il flag '-R' può essere necessario per assicurare che anche le directory non modificate vengano eliminate, come parte del buttare via * tutte * le modifiche. Considera di incorporare questo nella tua risposta, se ciò ti sembra appropriato. –

23

C'è un comando

svn revert -R . 

O
è possibile utilizzare il --depth = infinito, che in realtà è come sopra:

svn revert --depth=infinity 

svn revert è intrinsecamente pericolosa, dal momento che tutto il suo scopo è quello di buttare via i dati, cioè, le modifiche non salvate. Una volta ritornato, Subversion non fornisce alcun modo per tornare quelle modifiche non

+6

'-R' è equivalente a' --depth = infinity' –

+4

Il tuo cmd " svn revert -R "manca la directory corrente nella sintassi .. dovrebbe essere" svn revert -R. " – boddhisattva

+0

Sì, ho modificato la mia risposta di conseguenza. :-) –

17

Utilizzare l'interruttore ricorsiva --recursive (-R)

svn revert -R . 
0

Per ripristinare i file modificati:

sudo svn revert 
svn status|grep "^ *M" | sed -e 's/^ *M *//' 
+0

Penso che il mio cambio di formattazione rappresenti quello che vuoi. Rollback se non ti piace. E grazie, è bello ricordare i brutti vecchi tempi di SVN ... :) –

Problemi correlati