Subversion guide: Difference between revisions

From Peters wiki
Jump to navigation Jump to search
 
mNo edit summary
Line 1: Line 1:
[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]


[[Category:Gentoo Linux]]
[[Category:Gentoo Linux]]

Revision as of 19:11, 13 March 2008

[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

  1. cd testProj
  2. 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

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

  1. cd tmp
  2. 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]