Uno shell command per rimuovere le cartelle SVN
Il server di source control Subversion (per gli amici SVN) mantiene lo stato in una serie di cartelle nascoste .svn piazzate all’interno della root folder del progetto. Molte volte mi è capitato di dover pulire il mio progetto dallo stato SVN (fornire una copia pulita della cartella, sharing di rete, etc.). Rimuovere manualmente ".svn" in progetti con alta profondità di path diventa praticamente impossibile, quindi mi ero attrezzato con una procedura batch che ricorsivamente cercava all’interno del progetto le cartelle .svn rimuovendole dal filesystem. Googlando mi sono imbattuto in un post in cui venivano fatti degli esperimenti per confrontare le prestazioni tra una soluzione che faceva uso dei classici comandi di shell windows\dos e un’alternativa implementata con PowerShell; in uno dei commenti al post un lettore proponeva di aggiungere una shell extension nel registro di windows in modo da avere il comando di rimozione sempre a "portata di click". Ecco la soluzione :
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\" \""
Il tutto va ovviamente "incollato" in un file .reg in modo che windows possa aggiungere opportunamente le chiavi di registro.
Da ora basterà un click destro sulla root del progetto e il comando "Delete SVN Folders" si occuperà di tutto.
Se dovesse interessare l’implementazione PowerShell trovate qui il post : Powershell vs Command Prompt on Deleting SVN Directories
This entry was posted on Tuesday, October 9th, 2007 at 11:01 am and is filed under Tools. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.