2009-08-19 11 views
32

Eventuali duplicati:
How do you remove Subversion control for a folder?
Command line to delete matching files and directories recursivelyRimozione dei file .svn da tutte le directory

Recentemente ho convertito i miei repository CVS a SVN usando cvs2svn e di recente ho notato che ogni directory ha una cartella nascosta chiamato .svn. Il mio attuale script di compilazione copia molte directory dalle mie directory di risorse con versioni e finisce per copiare i file .svn. C'è comunque da fare svn non includere questi file quando eseguo il checkout o devo scrivere uno script per cancellare tutti questi file .svn. Ci sono molti file che hanno queste directory .svn nascoste quindi questo sarebbe un problema a meno che non possa scrivere uno script ricorsivo per farlo, ma non lo faccio se posso farlo per il mio programma di installazione di Windows. C'è un modo semplice per fermare svn dal mettere questa directory nascosta ovunque nel mio progetto?

+0

Ops, scelto quella sbagliata: http://stackoverflow.com/questions/154853/how-do-you-remove-subversion-control-for-a-folder – zzzzBov

risposta

28

si può fare una cosa chiamata uno SVN Export per ottenere i file senza le directory .svn

http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.export.html

+0

Sì, l'esportazione SVN rimuoverà i file .svn. È possibile creare un file batch per eseguire il comando di esportazione dalla riga di comando e incorporarlo nel processo di creazione. –

+0

controlla questo link mi ha aiutato .... http://cocoabugs.blogspot.com/2010/09/script-to-remove-hidden-svn-folder.html –

+2

questo è ottimo, ma sfortunatamente a volte qualcuno ti manda un tarball completo di questi :( – Eva

4

queste cartelle vengono richieste per la sovversione come funziona con una copia di lavoro (cioè dove hai fatto un checkout).

Un'opzione potrebbe essere per l'esportazione in un'altra posizione. L'esportazione non avrebbe le cartelle .svn, e su questo potresti eseguire il tuo script. Documentazione: svn export, TortoiseSVN Export

Un'altra opzione sarebbe modificare lo script per ignorare le directory nascoste o creare uno strumento di generazione migliore.

-1

Non so se li eliminerei, ma forse modificherò il copione per ignorarli copiarli sarebbe una buona idea. Io uso Ant per compilare compilare e costruire la mia guerra e lo fa ignorando le directory .svn.

+0

eliminarli non è una buona idea a meno che tu non voglia che quella cartella NON sia una più copia funzionante. – crashmstr

5

I posted this yesterday over here, ma qui è ancora una volta perché ho sorta di metterlo nel thread sbagliato comunque ...


Ho qualcosa che dovrebbe rendere il vostro giorno. La fonte originale è here.

Questa è un'estensione shell (perfettamente sicura) che aggiungerà "Elimina cartelle SVN" al menu del tasto destro in Windows. Eseguilo su qualsiasi directory contenente quei file fastidiosi.

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] 
@="Delete SVN Folders" 

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] 
@="cmd.exe /c \"TITLE Removing SVN Folders in %1 && COLOR 9A && FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \"" 

Per fare in modo che questa parte del copione di script copi quella chiamata a cmd.exe ed eseguirla.

1

svn export è quello che vuoi. Vi darà una copia pulita dell'albero del codice senza le directory .svn (si noti che questa copia non è sotto controllo di versione e i comandi svn non funzioneranno su di esso una volta che è stata esportata).

Io utilizzo questo metodo per avviare il codice sui server di produzione. Il nostro script di build prende un'esportazione del ramo di codice, tars e gzips, lo carica sul server corretto e lo decomprime/untars.

68

Non sono sicuro nel tuo caso specifico che desideri rimuovere tutte quelle directory .svn.Ma se lo fai, ecco un bash one-liner per fare proprio questo:

find . -name .svn -print0 | xargs -0 rm -r 
+2

prima di eseguire il comando, assicurarsi di inserire la directory corretta, ad esempio: cd mySVNdirectoryWhereToRemoveTheSubfolders – Camaleo

0

Si potrebbe dare un'occhiata a SVK, che è uno strato in cima Subversion. Uno dei vantaggi è che i metadati del repository per la tua copia di lavoro, che normalmente sono archiviati nelle directory .svn, sono invece conservati in un'unica posizione centrale, quindi non hai il brutto problema di dir nascosta .svn. È carino

3

e una versione di PowerShell

ls -Force -Recurse -Filter .svn | rm -Force -Recurse 
+0

A volte si eredita il codice in cui questo è solo più utile. Grazie! – jray

5

find . -name '.svn' -depth -exec rm -rf '{}' \; -ls

+0

upvote per utenti Windows con cygwin installato. Trovo ancora più facile usare la casella di ricerca Esplora file. – Roland

0

find "/ YourFolder" -name ".svn" -exec rm -fdR {} \;

Scegli questa link

5

su sistemi Win32/Win64, il seguente comando dovrebbe fare il lavoro:

del /q /s .svn 
Problemi correlati