Subversion guide
[b]Sätt upp din versionshanterande miljö[/b] Vi startar med att sätta upp ett litet projekt testProj och börjar med att skapa de filer och bibliotek vi tänker jobba med. [code]# mkdir testProj
- cd testProj
- mkdir branches tags trunk [/code]
I trunk lägger vi de filer vi ska jobba med, i det här fallet bara en fil. [code]# cd trunk
- nano -w file1.txt[/code]
Min file1.txt: [code]cat file1.txt Detta är en liten textfil som vi använder för att testa svn.[/code] Här vill vi ha vårt repository: [code]# mkdir svnroot[/code] Nu skapar vi vårt repository där de versionshanterade filerna ska ligga. I detta repository ska vi i princip aldrig röra något. [code]# svnadmin create /home/mats/svnroot/repos[/code] Nu flyttar vi in våra filer i vårt nya repository. [code]svn import testProj file:///home/mats/svnroot/repos/testProj[/code] Skriv en liten kommentar i editorn som dyker upp, spara texten och stäng sedan editorn. [code]Adding testProj/trunk Adding testProj/trunk/file1.txt Adding testProj/branches Adding testProj/tags
Committed revision 1.[/code] Ta en titt på ditt repository: [code]svn list file:///home/mats/svnroot/repos/testProj branches/ tags/ trunk/[/code]
[b]Editera en fil[/b] Nu kan vi testa att checka ut vårt projekt och göra en ändring. När vi checkar ut projektet kopieras en kopia av det över till det biliotek vi står i när vi ger kommandot. [code]# mkdir tmp
- cd tmp
- svn co file:///home/mats/svnroot/repos/testProj
A testProj/trunk A testProj/trunk/file1.txt A testProj/branches A testProj/tags Checked out revision 1.[/code] Vi kan nu editera vår fil som vanligt och titta på den efteråt. [code]# cat file1.txt Detta är en liten textfil som vi använder för att testa svn. Har lagt till en rad.[/code] Tittar vi på den från svn ser vi dock inte ändringen ännu, eftersom vi inte har checkat in ändringarna än, dvs svn läser filen i repositoriet och inte den lokala. [code]# svn cat file1.txt Detta är en liten textfil som vi använder för att testa svn.[/code] Med kommandot status kan vi se vad vi ändrat för något. [code]svn status M file1.txt [/code] Vi kan nu göra commit på våra ändringar: [code]# cd /home/mats/tmp/testProj svn ci -m "En första checkin" Sending trunk/file1.txt Transmitting file data . Committed revision 2.[/code] Och nu syns ändringen även av svn: [code]svn cat trunk/file1.txt Detta är en liten textfil som vi använder för att testa svn. Har lagt till en rad.[/code] Vi kan se en log över vad som ändrats: [code]# svn log
r1 | mats | 2008-03-13 08:53:02 +0100 (tor, 13 mar 2008) | 2 lines
First version
[/code]
Med status kan vi se statusen på vårt projekt: [code]# svn status -v
1 1 mats . 1 1 mats trunk 2 2 mats trunk/file1.txt 1 1 mats branches 1 1 mats tags[/code]
Första siffran anger working version, dvs vilken version av repository:t som filen kommer ifrån och den andra anger vilken senaste version av repository:t som filen ändrades i. Om man synkar upp till senaste version av repository:t med kommandot: [code]# svn up[/code] så kommer första siffran på alla filer ändras till en 2:a. Om du ska göra flera ändringar är det bara att fortsätta editera, och sedan ev. checka in ändringarna. En checkout, hämtar bara en kopia av det som finns i repository:t och lägger i din workspace så att du kan jobba med filerna. Är ni flera användare, eller om du av någon anledning editerar från flera maskiner kommer [code]# svn up [/code] att lyfta in eventuella ändringar som gjorts av andra.
[b]Skapa en branch[/b]