2010-09-03 13 views
6

Un tizio intelligente in ufficio è riuscito a inviare un intero gruppo di file di "backup" (che iniziano con ._) al nostro server di subversion.Elenco di tutti i file con versione in subversion? (Rimuovi i file per nome)

Preferibilmente vorrei eliminare questi file utilizzando alcuni script bash di base invece di passare manualmente attraverso il repository.

C'è un modo per ottenere un elenco di tutti i file con versione di subversion all'interno di una directory in modo da poter eseguire alcune eliminazioni di grepping/svn di base?

edit:

'elenco svn' non è ricorsiva e sembra anche ad elencare le directory, ho bisogno del tipo di comportamento come 'trovare'.

secondo edit:

Ok, la bandiera -R può fare 'elenco svn' ricorsivo ... ma come faccio a nudo fuori le directory?

+0

A proposito, se riesci a convincere il tuo ufficio, ti consiglio di passare a un VCS più moderno, come [Git] (http://git-scm.com/) o [Mercurial] (http://mercurial.selenic.com/). –

+0

@AndrewMarshall: Ci siamo trasferiti quasi un anno fa;) –

+1

Fantastico! Non mi ero nemmeno reso conto di quanti anni avesse questa domanda, qualcuno ha aggiunto una risposta, quindi è salito in cima e l'ho visto ': P'. –

risposta

4

Se è solo in una commit (o una serie di commit) quindi utilizzare svn merge per annullarla.

Se l'utente è stato facendo tra diverse commit e siete su Linux:

In primo luogo verificare che questo elenca correttamente i file che si desidera eliminare:

find . -name '._*' 

poi effettivamente invocano SVN per cancellarli:

find . -name '._*' -exec svn rm {} \; 

Controllare lo stato di svn, confermare se valido.

Disclaimer: Non ho testato i comandi, quindi attenzione.

Penso che quelli siano i file di backup Mac che esegue automaticamente.

+0

Ha funzionato magnificamente, grazie :) E sì, il ragazzo sta usando un mac. –

5
svn list -R 

elenca tutti i file e le directory ricorsivamente

+0

Funziona, ma lento :-( –

3

come rimuovere le directory?

La chiave è osservare le directory termineranno con una barra.

È quindi possibile utilizzare grep.

svn list -R my_svn_dir | grep -v '/$' 
Problemi correlati