Subversion
För anställda:
Om du vill ha / behöver en repository i SVN, prata med driftgruppen så hjälper vi dig!
Subversionservern kan accessas både via http och via https (som är säkert). Den generella adressen är:
https://svn.cs.lth.se/svn/repositorynamn/
För systemgruppen:
Att lägga till ett repository
- i en terminal, logga in på svn: ssh root@svn.cs.lth.se
- Nu finns ett script som gör detta; svn-add.sh. Här är hjälp-texten för det:
$ svn-add.sh -h
Exempel:
Usage: svn-add.sh -u User -p Password -r Repo [-R Responsible for repo] [-v Valid through] [-y You] [-d Debug]
-u User to be added
-p Password for that user
-r Reposity to add the user to
-R Responsible for the repo (meta-information for "/etc/apache2/httpd-svn.conf")
-v Valid through (meta-information for "/etc/apache2/httpd-svn.conf")
-y You, i.e. the one who enters information here (meta-information for "/etc/apache2/httpd-svn.conf")
-d Debug. Will tell you what it does
Note that user, password, repository must always be specified.
The other options are only needed when a new repo is created.
The repo may include one directory (ex. "-r eda040/grp04")
Also note that the Apache server is NOT restarted!
# svn-add.sh -r pmtest/grp2 -u peterm -p 'GnyL!i3f' -R "Peter Moller" -v "En vecka" -y PM -d
# svn-add.sh -r CoreImage -u linus -p hubbahopp -R "Emma Soderberg" -v "2012-01-20" -y PM
# svn-add.sh -r CoreImage -u emma -p NickeNyfiken
Notera att mellanslag måste escapas, att skal-metatecken måste hanteras med enkel-fnatt och svenska teken undvikas! - Resten av instruktionen för att skapa nytt repo är med här för referens!
editera /etc/apache2/httpd-svn.conf och lägg till ett block som följande:
## Bok, Martin Host, Per R och Austen R
## 2010-06-02 / TR, tills vidare.
<Location /svn/algorithms>
DAV svn
SVNPath /Users/Shared/svn/algorithms
AuthType Basic
AuthName "Algorithms's subversion repository"
AuthUserFile /Users/Shared/svn/algorithms/svnusers
Require valid-user
</Location> - Skapa repositoryt:
svnadmin create /Users/Shared/svn/algorithms
(det blir automatiskt med --fs-type fsfs) - Sätt rätt ägare på det:
chown -R www:www /Users/Shared/svn/algorithms - Skapa lösenordsfil och populera den:
htpasswd -c /Users/Shared/svn/algorithms/svnusers calle
htpasswd /Users/Shared/svn/algorithms/svnusers lisa
... - Starta om apachen på svn:
apachectl restart
(eller grafiskt via Apple-menyn -> Systeminställningar -> Delning)
Att lägga till en användare i ett repository
- Logga in som root på svn
- Lägg till flera användare med:
htpasswd /Users/Shared/svn/algorithms/svnusers pelle
...
Att styra accessen för en användare i ett repository
- Logga in som root på svn
- Peka ut filen som styr accesskontrollen:
lägg till följande i rätt block i /etc/apache2/httpd-svn.conf:
AuthzSVNAccessFile /Users/Shared/svn/repository_namn/svn.authz
(alltså i blocket som hör till ”repository_namn”)
Vill du att anonym skall kunna komma in, lägg då även till följande (förutom * = r etc. enligt nästa punkt):
Satisfy Any - Skapa denna fil:
[repository_namn:/]
adam = r
bertil = rw
[repository_namn:/path]
adam =
bertil = rw
caesar = rw
* = r
Detta gör så att användaren ”adam” kommer åt roten men inte katalogen ”path”; ”bertil” kommer åt allt, ”caesar” kommer endast åt ”path”. * innebär icke autenticerade användare och innebär att alla kommer åt med de rättigheter som specificeras efter =, i det här fallet läs-access. Access-kontroll sker när man försöker skriva!
Notera att accessrättigheterna ärvs nedåt (så länge inget annat sägs). Däremot måste alla användare som skall ha access räknas upp!
Man kan bygga grupper i svn.authz-filen:
[groups]
administrators = david, erik, filip
doktorander = gustav, helge
Grupper kan ges accessrättigheter precis som användare. Skilj dem med @-prefix:
[/trunk/admin]
@administrators = rw
ingvar = r - Starta om apachen på svn:
apachectl restart
Läs mer om detta här:
http://www.barneyb.com/barneyblog/2008/02/28/read-only-and-read-write-svn-repositories/
eller här:
http://svnbook.red-bean.com/en/1.1/ch06s04.html#svn-ch-6-sect-4.4.2