Subversion guide: Difference between revisions

From Peters wiki
Jump to navigation Jump to search
mNo edit summary
(No difference)

Revision as of 17:29, 15 March 2008

Sätt upp din versionshanterande miljö

Vi startar med att sätta upp ett litet projekt testProj. Template:Box Kod

I trunk lägger vi de filer vi ska jobba med, i det här fallet bara en fil.

# cd trunk
# nano -w file1.txt

Min file1.txt:

# cat file1.txt
Detta är en liten textfil som vi använder
för att testa svn.

Här vill vi ha vårt repository:

# mkdir svnroot

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.

# svnadmin create /home/mats/svnroot/repos

Nu flyttar vi in våra filer i vårt nya repository.

# svn import testProj file:///home/mats/svnroot/repos/testProj

Skriv en liten kommentar i editorn som dyker upp, spara texten och stäng sedan editorn.

Adding         testProj/trunk
Adding         testProj/trunk/file1.txt
Adding         testProj/branches
Adding         testProj/tags

Committed revision 1.

Ta en titt på ditt repository:

# svn list file:///home/mats/svnroot/repos/testProj
branches/
tags/
trunk/


Editera en fil

Nu kan vi testa att checka ut vårt projekt och göra en ändring. När vi checkar ut projektet flyttas en kopia av det över till det biliotek vi står i när vi ger kommandot.

# 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.

Vi kan nu editera vår fil som vanligt och titta på den efteråt.

# cat file1.txt
Detta är en liten textfil som vi använder
för att testa svn.
Har lagt till en rad.

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.

# svn cat file1.txt
Detta är en liten textfil som vi använder
för att testa svn.

Med kommandot status kan vi se vad vi ändrat för något.

# svn status
M      file1.txt

Vi kan nu göra commit på våra ändringar:

# cd /home/mats/tmp/testProj
# svn ci -m "En första checkin"
Sending        trunk/file1.txt
Transmitting file data .
Committed revision 2.

Och nu syns ändringen även av svn:

# svn cat trunk/file1.txt
Detta är en liten textfil som vi använder
för att testa svn.
Har lagt till en rad.

Vi kan se en log över vad som ändrats:

# svn log
------------------------------------------------------------------------
r1 | mats | 2008-03-13 08:53:02 +0100 (tor, 13 mar 2008) | 2 lines

First version

------------------------------------------------------------------------

Med status kan vi se statusen på vårt projekt:

# svn status -v
                1        1 mats         .
                1        1 mats         trunk
                2        2 mats         trunk/file1.txt
                1        1 mats         branches
                1        1 mats         tags

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:

# svn up

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

# svn up 

att lyfta in eventuella ändringar som gjorts av andra.


Skapa en branch