Subversion op Linux Desktop install-log
Subversion kan gebruikt worden op de eigen pc om teksten of broncode of andere documenten te beheren. (zie ook inleidend artikel over Subversion)
Subversion bestaat uit:
1) een command line gebruikersprogramma met de naam “svn”
2) een programma dat de status bijhoudt: “svnversion”
3) een programma om de repository te bekijken: “svnlook”
4) een programma om een repository te maken, beheren: “svnadmin”
5) een programma om dump streams te filteren “svndumpfilter”
6) een plugin voor de apache server “mod_dav_svn”
7) een standalone server deamon voor netwerkgebruik “svnserve”
Daarvoor moet het eerst geïnstalleerd worden natuurlijk. Een voorbeeld van installatie op Suse Linux 9.3 (gevolgd door een kleine gebruikstest):
In Suse 9.3 is al Subversion meegeleverd. Via Yast geinstalleerd.
In Yast, network services, http, modules : dav aangezet, en dan toevoegen, svn, en
ook aangezet. Daarna webserver gestart; foutmelding: “svn” is not installed, ignoring.
Ook “mod_svn” als improvisatie werkt niet.
Dus zelf even in /etc/sysconfig/apache2 de “APACHE_MODULES” lijn voorzien na
“dav” (stond er al in) van “dav_svn autfz_svn”
apache herstart (/etc/init.d/apache2 restart)
Dat levert geen foutmelding op, en controle in phpinfo geeft onder de rubriek “Loaded Modules” mooi de items ” … mod_dav … mod_dav_svn mod_authz_svn”
Op de command line een check doen: “svn –version” na installatie:
wig@tire:~> svn --version
svn, version 1.1.3 (r12730)
compiled Mar 22 2005, 23:42:08
enz. geeft aan dat de software werkt, en toont informatie over de versie en andere details.
De drie stappen om te beginnen zijn:
1) Maak een plaats waar Subversion zijn gegevens opslaat.
wig@tire:~/Documents> svnadmin create /home/wig/svn
De bestanden zijn gemaakt met de rechten van de gebruiker.
(Vraag 1: hoe terug verwijderen, via een commando of gewoon directory wissen?)
(Vraag 2: als het op een server moet draaien, hoe zit het dan met die rechten?)
2) Organiseer je project in een directory:
Mijn te “subversion”-en directory bestaat al met de naam “svnTest” met een bestand erin “test.txt”.
Ik maak deze 3 subdirectories (volgens conventies in svn gebruik):
cd ~/svnTest
mkdir branches
mkdir tags
mkdir trunk
Document in “trunk” gezet:
mv ./test.txt ./trunk
3) Registreer het project in de repository:
wig@tire:~/Documents> svn import svnTest file:///home/wig/svn -m "initial import"
Adding svnTest/.directory
Adding svnTest/trunk
Adding svnTest/trunk/test.txt
Adding svnTest/branches
Adding svnTest/tags
Committed revision 1.
Gebruik in 3 stappen:
1) Haal een werkversie uit het repository
Als je al aan het werken was aan een document gebruik je “svn update”.
Om uit te proberen hoe ik van nul begin heb ik het testbestand weggegooid. Dan “svn checkout”:
wig@tire:~/Documents> svn checkout file:///home/wig/svn/trunk svnTest
A svnTest/webdevBuitenCMS.txt
Checked out revision 1.
In de trunk directory staat niets. In de svnTest dir staat terug het bestand dat gewist was. Niet helemaal volgens verwachting, dus opnieuw test.txt gewist. Daarna:
wig@tire:~/Documents> svn checkout file:///home/wig/svn/trunk svnTest/trunk/
A svnTest/trunk/webdevBuitenCMS.txt
Checked out revision 1.
2) Wijzig de afgehaalde werkversie
Wijzigingen gedaan aan de tekst, en bewaard. Daarna “diff” gevraagd:
wig@tire:~/Documents> svn diff svnTest/trunk/
Index: svnTest/trunk/test.txt
===================================================================
--- svnTest/trunk/test.txt (revision 1)
+++ svnTest/trunk/test.txt (working copy)
@@ -1 +1,8 @@
-Ideeen voor buitenCMSgewone mogelijkheden.
No newline at end of file
+Ideeen voor buitenCMSgewone mogelijkheden.
+
+1. random
+- een random programma voorstellen
+
+2. pseudo random (ip adres)
+
+3.
No newline at end of file
3) Bewaar de gewijzigde versie als goede versie in svn met commit
svn commit svnTest/trunk/
Bij commit worden de wijzigingen toegevoegd, er is wel een melding vereist. Zonder melding opent er een tekstverwerker die wacht op een commentaar. Dat is even vreemd als je dat niet verwacht, en zeker als je de tekstverwerker niet kent …
Log message unchanged or not specified
a)bort, c)ontinue, e)dit
onthou: een “:” om een commando te geven, write quit wq. Daarna zie je:
Sending svnTest/trunk/webdevBuitenCMS.txt
Transmitting file data .
Committed revision 2.
Bij nazicht nadien blijkt er geen tekst in te zitten, dus misschien toch iets fout gedaan.
Normaal is het beter die mee te geven met het commando waarschijnlijk:
svn commit --message "Eerste keer commit test"