25/5/2008

Subversion

Filed under: — cybrarian @ 2:09 pm

SubversionInstalleer 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
svn in user home dir

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:
directories

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/

Reacties zijn gesloten.

Powered by WordPress