apr  09
15

Come cancellare cartelle “.svn”

Pubblicato il 15 aprile, 2009
Autore: Michele

Subverion (SVN) memorizza le informazioni di stato riguardo la “working copy” di un progetto all’interno di directories nascoste chiamate “.svn”. Queste directories vengono utilizzate per contenere metadati SVN. Considerando una directory contenente un progetto prelevato da un repository SVN (ad esempio, una directory chiamata “MyProject”), avremo una cartella nascosta “.svn” per ogni directory e sotto-directory collocate all’interno di “MyProject”. A volte si ha la necessità di cancellare queste directory nascoste, ad esempio, per distribuire o condividire il progetto con persone che non usano Subversion, o semplicemente, per archiviare una copia del progetto senza i metadati SVN.

Cancellare manualmente tutte le cartelle nascoste “.svn” da ogni singola directory e sotto-directories non è la cosa più eccitante del mondo, specialmente se il progetto su cui si vuole operare è piuttosto grande e comprende una moltitutide di sotto-directories annidate. Per svolgere questa operazione automaticamente su macchine Mac o comunque su macchine basate su sistemi operativi Unix/Linux, basterà aprire il terminale e lanciare il seguente comando all’interno della directory del progetto in cui si vuole elminare le directories “.svn” (ad esempio, “MyProject”):

find . -type d -name .svn -depth -exec rm -rf {} \;

Il significato del comando è:
“trova in questa cartella (find .) tutte le sotto-cartelle (type -d) chiamate ‘.svn’ (-name .svn) con ordine padre->figlio (-depth) ed esegui il comando ‘rm -rf’ su ogni directory trovata ({})”.

Gli utenti Windows, invece, possono aggiungere una nuova voce di menù (ad esempio, “Delete SVN Folders”) all’interno del menù contestuale di Windows. Selezionando la cartella del progetto da cui eliminare le sotto-cartelle “.svn” e successivamente lanciando l’opzione “Delete SVN Folders” dal menù contestuale di Windows (tasto destro del mouse), verrà lanciato uno script che si occuperà di cancellare tutte le sotto-cartelle “.svn” (fonte: Jon Galloway’s Blog). Per fare questo, basterà copiare le seguenti righe di codice all’interno di un file di testo con estensione “.reg” (da creare) e poi fare doppio click su di esso per installarlo.

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\" \""



Commenti (2):

1
Paolo



Ho usato proprio adesso questo script. Funziona, grazie!!

2
G24



Problema appena risolto usando questo script.

Inserisci un commento

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)

Rigenera Immagine

Inserisci il codice mostrato in figura ed invia il commento (case-sensitive)