vrijdag 23 januari 2009

Subversion/TortoiseSVN: Loskoppelen working copy

Zoals beloofd deze week nog een Subversion tip. Dit keer over het loskoppelen van een working copy.

Er zijn situaties waarin je je working copy los wilt koppelen van het Subversion repository. Gebruikers van Subclipse zijn gezegend met een ‘detach’ actie, TortoiseSVN heeft echter niet zo’n actie.

Waar een ‘detach’ actie in feite op neer komt is het vewijderen van alles ‘.svn’ folders in de working copy. Dit is immers waar alle Subversion gerelateerde informatie van een working copy wordt bijgehouden.

Een manier om dit te doen is een export te draaien, waarbij een kopie gemaakt wordt van je working copy (of repository revision) met weglating van de ‘.svn’ folders. Soms wil je echter dat echt de working copy zelf wordt losgekoppeld.

Deze feature wens leeft nogal bij de TortoiseSVN gebruikers, gezien de vele hits op Google. Sommige mensen maken een script voor deze actie:

http://abhi.dcmembers.com/blog/2008/12/03/delete-svn-folders-recursively/

Een nog mooiere oplossing is een Shell Extension optie ‘Delete svn folders’:

http://weblogs.asp.net/jgalloway/archive/2007/02/24/shell-command-remove-svn-folders.aspx

Ik las echter pas op het TortoiseSVN blog dat TortoiseSVN stiekem toch deze functionaliteit ondersteunt. Als je namelijk een export draait van je working copy folder naar diezelfde working copy folder, dan bereik je precies het gewenste resultaat. Alle ‘.svn’ folders verdwijnen uit je working copy.

Dus: Klik met de rechtermuisknop op een working copy en kies ‘Export...’ vanuit het context menu. Een Browse dialog wordt getoond waarin je de destination folder kunt kiezen. Kies nu voor precies het pad van ditzelfde working copy, je exporteert dus je working copy over zichzelf heen. TortoiseSVN verwijdert nu alle ‘.svn’ folders.

Wat je ook kan doen is je working copy met de rechtermuisknop op zich dragen. Er verschijnt dan een context menu waarin je kan kiezen voor ‘SVN export all to here.’



Voor een animatie ga je naar http://tortoisesvn.net/node/343.

This post is 100% inspired by Stefan’s post on the href="http://tortoisesvn.net/node/343">tortoisesvn blog.