2013-02-12 7 views
5

Sto eseguendo un'esportazione svn del repository in una posizione temporanea, quindi rimuovo alcune directory prima di copiare il codice di base in una directory di distribuzione.svn esportate tutte tranne alcune directory

C'è un modo per "escludere" un elenco di directory durante il comando "export"?

Il motivo è che l'esportazione è più veloce (non è necessario recuperare elementi che rimuovo in questa distribuzione) e quindi lo script di distribuzione è più veloce.

+0

Appartiene al unix.stackexchange.com – Benjamin

risposta

3

È possibile utilizzare il concetto di Sparse Directories Exclusion per raggiungere questo obiettivo. Per i dettagli su di esso, è possibile leggerlo here.

Questo blog post ha anche spiegato il concetto di cui sopra.

Dire che non mi interessa più cosa sta succedendo su qualche directory di un mio progetto copie di lavoro. Forse non mi interessa più il sito del progetto di Subversion . Bene, con questa nuova funzionalità di esclusione, io posso dire Subversion per rimuovere quella directory:

$ cd ~/projects/subversion/trunk 
$ svn update --set-depth=exclude www 
D   www 
$ ls www ls: cannot access www: No such file or directory 
$ 

affare fatto. Quando aggiornerò la mia copia di lavoro in futuro, I non riceverà alcuna modifica diretta a quella directory www. Se poi ho decido che ancora una volta importa di quella directory, posso “sottoscrivere nuovamente” per ancora:

$ svn update --set-depth=infinity www 
A www 
A www/links.html 
A www/testing-goals.html 
… 
A www/tigris-permissions.html 
A www/webdav-usage.html Updated to revision 36292. 
$ 
+1

Grazie per la risposta chiara. Speravo in un "comando unico" ma immagino che tre comandi faranno il trucco nel mio caso. Riepilogo dei passaggi: "svn update --set-depth = exclude; svn export; svn update set-depth = infinity; – user1484259