(Ne)potrebni .svn folderi

Otkako koristim Subversion na Windowsima, vraća mi se kao bumerang potreba da neki folder očistim od .svn direktorijuma/foldera/fascikli.

Subversion u izvornoj ideji umesto neke “prave baze” koristi foldere koje jedinstveno naziva imenom - “.svn” i tu smešta informacije o datotekama u tom folderu. Da stvar bude lepša, ove foldere označi kao “hidden” te se oni ne moraju videti.

U mom slučaju Subverision najčešće vodi računa o datotekama neke web aplikacije. Ako moja aplikacija ima recimo 1000 foldera, na .svn varijanti imaće ih duplo više. Ovo značajno može odužiti pojedine operacije kao što je zipovanje ili upload na server.
Naravno SVN ima to predviđeno u vidu export komande… ali je i to sporo…

Evo kako se brzo, u sistemskom kontekstnom meniju (svakog) foldera dodaje komanda za brisanje svih .svn foldera koji se nalaze ispod tog selektovanog (rekurzivno).

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\RemoveSVN]
@=”Remove SVN folders”

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\RemoveSVN\command]
@=”cmd.exe /C \”COLOR CF && TITLE Removing SVN Folders in %1 && FOR /r \”%1\” %%f IN (.svn) DO RD /S /Q \”%%f\” \”"

Dakle ovo treba dodati u Windows registry. Taj REG file možete preuzeti i ovde. Dovoljno je da ga pokrenete (dvoklik)…

Ovo već neko vreme koristim na svoju odgovornost i bez problema. Želim to i vama.

This entry was posted on Petak, mart 16th, 2007 at 21:58:08 and is filed under programiranje. 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.

4 Responses to “(Ne)potrebni .svn folderi”

  1. Petar Marić Says:

    Ako ti je Total Commander FTP klijent postoji jednostavan trik za ignorisanje određenih direktorijuma/ekstenzija:
    U dijalogu za kopiranje kao masku u polju “Only files of this type” unesi “*.* | .svn\”.

    Mada, po mom mišljenju, znatno je bolje ako sinhronizaciju između devdeployment mašina vršiš upravo pomoću Subversion-a:
    Na deployment mašini uradiš inicijalni checkout i nakon toga napraviš bash skript koji ubaciš u cron (i/ili pozivaš prema potrebi) koji izvrši “svn up”.

    Dodatna prednost ovog rešenja je da kada menjaš granu razvoja ((nova) stabilna verzija se izdvojila iz trunka) samo jednom ukucaš “svn switch neka://nova/grana” i SVN završi posao. Naravno, tvoj update skript i dalje radi normalno kao da se ništa nije desilo ;)

  2. Dejan Ranisavljevic Says:

    Bravo, par puta sam imao slicnih problema, ali mi nije ni padalo na pamet da ima neceg ovako korisnog.

  3. anon Says:

    a da koristis svn export umjesto svn checkout?

  4. admin Says:

    > a da koristis svn export umjesto svn checkout?

    Ako si pažljivo čitao tekst rekao sam da je to jednostavno sporo…

Leave a Reply