lu.se

Datavetenskap internt

Lunds Tekniska Högskola

Denna sida på svenska This page in English

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

  1. i en terminal, logga in på svn: ssh root@svn.cs.lth.se
  2. Nu finns ett script som gör detta; svn-add.sh. Här är hjälp-texten för det:
    $ svn-add.sh -h
    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!
    Exempel:
    # 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!
  3. 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>
  4. Skapa repositoryt:
    svnadmin create /Users/Shared/svn/algorithms
    (det blir automatiskt med --fs-type fsfs)
  5. Sätt rätt ägare på det:
    chown -R www:www /Users/Shared/svn/algorithms
  6. Skapa lösenordsfil och populera den:
    htpasswd -c /Users/Shared/svn/algorithms/svnusers calle
    htpasswd /Users/Shared/svn/algorithms/svnusers lisa
    ...

  7. 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

  1. Logga in som rootsvn
  2. 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

  1. Logga in som rootsvn
  2. 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
  3. 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
  4. 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