vrijdag 23 januari 2009

Subversion/TortoiseSVN: Hernoemen/Verplaatsen van files

Dit is tip 1 van de 2 Subversion tips die ik deze week zal posten op het ISAAC blog.

Aanleiding is de presentatie/demonstratie over Subversion die ik onlangs mocht geven aan alle collega's.

Een van de onderwerpen die nog niet helemaal was uitgekauwd tijdens de presentatie was het hernoemen of verplaatsen van bestanden. Dit levert nog wel eens problemen op bij onze Web Developers, waar gebruik wordt gemaakt van TortoiseSVN in tegenstelling tot Subclipse bij de Software Ontwikkelaars.

Het renamen/hernoemen of moven/verplaatsen van bestanden in een Subversion working copy moet altijd worden uitgevoerd met de daarvoor bestemde subversion commando’s.

Bij ISAAC gebruiken we dus o.a. TortoiseSVN, welke een rename actie hiervoor heeft in het shell-extension menu.



Aangezien een working copy gewoon via de windows explorer is, is het makkelijk om deze actie te vergeten en gewoon met de windows explorer een file te renamen. Dit kan allerlei problemen opleveren in Subversion, dit begint al bij het verlies aan history van een file.

Als je bijvoorbeeld een file list.txt renamed naar list_renamed.txt zonder gebruik van het TortoiseSVN commando, zul je zien dat bij een commit of Check-For-Modifications actie de list.txt als missing wordt gemeld en list_renamed.txt als non-versioned.



Gelukkig heeft TortoiseSVN tegenwoordig (dwz vanaf versie 1.5.0-alpha1) een optie om deze ‘illegale’ rename actie te repareren.

Door 2 gerelateerde files te selecteren kan met de optie ‘repair move’ alsnog de juiste koppeling gelegd worden. Subversion zal dan alsnog door hebben dat de file is gerenamed, met als gevolg onder andere dat de history van de file beschikbaar blijft.



Deze repair actie kan ook worden gebruikt voor het hernoemen van folders, of het verplaatsen van files.

This post is inspired by Stefan’s post on the TortoiseSVN Blog.