Subversion guide: Difference between revisions
m Ny sida: Category:Gentoo Linux |
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
- 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]