Subversion
Installeer SVN of subversion server
– Bv in openSuse 10.3: installeren vanuit Yast (subversion server)
– check op de command prompt (als root): start svn via
/etc/init.d/svnserve:
of voor RH/Fedora:
service svnserve start
Starting svnserve startproc: No such user or user id: svn failed
Maak de user en group voor svn (als root):
useradd svn
groupadd svn
>
: beter groupadd -r svn
en useradd -r -g svn svn
, en nog beter waarschijnlijk is ineens de homedir van de user op te geven: useradd -d /srv/svn
; anders moet je dat nadien aanpassen (kan via Yast, security, user management).
Daarna opnieuw:
/etc/init.d/svnserve start
Starting svnserve done
Als user kan je nu: svn help
usage: svn subcommand [options] [args]
Subversion command-line client, version 1.4.4.
…
(* zie onderaan – more)
Er wordt een buffer bijgehouden in ~/.svn
en in de home dir staat ook nog
De server (svnserve) draait als user svn volgens top
.
Je maakt een repository directory voor de server met:
svnadmin create
. . . (directory plaats/naam: maar wat?)
De configuratiefile van de server staat hier als
/etc/sysconfig/svnserve
en heet blijkbaar niet svnserve.conf zoals de documentatie zegt. Een inzicht:
/etc/sysconfig # cat svnserve
Daarin vind je de standaard configuratie zoals de plaats van de directory die de svn server gebruikt. Ik vraag me af of ik nog
svnadmin create /srv/svn/repos
moet doen? (lukte niet)
Ik maak als root in /srv een subdir svn en maak hem van user/group svn:
myhost:/srv # mkdir svn
myhost:/srv # chown svn svn
myhost:/srv # chgrp svn svn
en daarna
svnadmin create /srv/svn/repos
Overzicht:
In de subversion server directory staan de configuratiefiles:
/srv/svn/repos/conf/
svnserve.conf
passwd
authz
In svnserve.conf wordt aangegeven waar de gebruikersgegevens staan; verwijst bv naar de files authz
en passwd
:
password-db = passwd
In het bestand passwd komen de [users]
onder username = userpassword
:
[users]
username1 = userpassword1
username2 = userpassword2
In svnserve.conf komt verder nog toegangsregels voor lees en schrijftoegang en een beschrijving van je repository:
anon-access = read
auth-access = write
realm = My local offline repository
Ik vind nergens duidelijk beschreven of je svnadmin create myproject als root moet doen of als user, maar als user lukt het mij niet:
svnadmin create myproject
svnadmin: Repository creation failed
.. Can't create directory '/srv/svn/repos/myproject': permission denied
Dus ofwel als root ofwel als user svn (met su svn
als de gebruiker-login niet afstaat)
Hoe nu op afstand aangeven als welke user je svn bewerkingen doet?
Een van de problemen bij het experimenteren is ook onmiddellijk: hoe verwijder je terug een project uit een svn?
Het antwoord schijnt te zijn dat svn bedoeld is om nooit iets kwijt te geraken (dus alles bij te houden).
Elders las ik de suggestie om een fout er uit te halen door die revisie terug te draaien. Stel we zijn nu versie M, en in versie N is ergens een fout geslopen:
svn merge -r N:N-1
Dat zou terug te vinden zijn in het boek in hoofdstuk 4, maar dat zorgt er alleen voor dat het in de HEAD niet meer zichtbaar is, als je terug gaat kijken naar die revisie wel!
(wordt vervolgd …)
Links:
Wikipedia: Subversion software
Subversion home: Tigris.org
Suse svn installatie
En diverse als
http://svnbook.red-bean.com/en/1.0/ch05s03.html
Een handleiding: Subversion guidelines in pdf.
Nog een Gentoo SVN HowTo
(*) Reaktie van svn help
:
usage: svn subcommand [options] [args]
Subversion command-line client, version 1.4.4.
Type ‘svn help‘ for help on a specific subcommand.
Type ‘svn –version’ to see the program version and RA modules
or ‘svn –version –quiet’ to see just the version number.Most subcommands take file and/or directory arguments, recursing
on the directories. If no arguments are supplied to such a
command, it recurses on the current directory (inclusive) by default.Available subcommands:
add
blame (praise, annotate, ann)
cat
checkout (co)
cleanup
commit (ci)
copy (cp)
delete (del, remove, rm)
diff (di)
export
help (?, h)
import
info
list (ls)
lock
log
merge
mkdir
move (mv, rename, ren)
propdel (pdel, pd)
propedit (pedit, pe)
propget (pget, pg)
proplist (plist, pl)
propset (pset, ps)
resolved
revert
status (stat, st)
switch (sw)
unlock
update (up)Subversion is a tool for version control.
For additional information, see http://subversion.tigris.org/