Innhold
1???Hva er subversion?
Subversion er et versjonskontrollsystem. Det holder rede p? hvilke endringer som er gjort i filer (fortrinsvis tekstfiler), hvem som har gjort dem og hvorfor endringen ble gjort. Det har st?tte for klient/tjener-basert tilgang til sentralt arkiv, p? en slik m?te at flere personer kan gj?re endringer uten ? g? i bena p? hverandre.
2???Hvordan kan mitt prosjekt f? tilgang til subversion?
2.1???Hvem kan f? tilgang
Tjenesten er satt opp for uio-relaterte prosjekter der ansatte og studenter er deltakere. Prosjektene b?r ha en viss varighet. Tjenesten er ikke tiltenkt studentprosjekter i forbindelse med kurs, og med veldig f? deltagere. For slike prosjekter anbefales det ? sette opp et versjonskontrollarkiv i et av deltagernes hjemmeomr?der.
Studenter og ansatte ved Institutt for informatikk kan g? til ifis internsider om subversion (krever innlogging med UiO-brukernavn/passord) og be om opprettelse av repository p? instituttets egen SVN-tjeneste.
2.2???Praktisk informasjon
Tjenesten kj?rer p? UNIX-maskiner. Prosjektet m? ha et navn som kan brukes til ? lage arkivkatalogen til prosjektet, og det m? v?re tilknyttet en UNIX-filgruppe hvis medlemmer f?r skrivetilgang til prosjektet. Det m? ogs? opplyses om alle i verden skal kunne lese innholdet i prosjektarkivet, eller om det skal kun v?re lesbart for medlemmene i filgruppen. Navn b?r best? av bokstavene a-z, bindestrek og tall. For eksempel 'cerebrum' og 'search-group'. Filgruppe f?lger vanlig navngiving for grupper, og bestilles via bofh/cerebrum hvis en ny filgruppe m? opprettes. Hvis du ikke vet hva en UNIX-filgruppe er, h?r med din lokale IT-ansvarlige.
N?r disse punktene er avklart kan en sende en foresp?rsel til unix-drift@usit.uio.no om ? f? opprette et nytt prosjekt. Det er fint om en i henvendelsen kan estimere hvor mye plass en tror prosjektet vil trenge p? disken, slik at unix-drift kan vurdere om filomr?det m? utvides.
Subversion-URL til prosjektene har formen:
svn+ssh://svn.uio.no/svnroot/prosjektnavn
n?r det er opprettet.
Anonym lesetilgang til arkivkatalogene er mulig. Det aktiviseres ved ? gi alle lesetilgang til katalogene p? filsystemet som beskrevet under oppsett av et nytt arkiv. Anonym tilgang til prosjektet prosjektene har URL p? formen:
svn://svn.uio.no/svnroot/prosjektnavn
Skrivetilgang for brukere uten brukernavn ved Universitetet i Oslo er ikke tilgjengelig enn?. Det planlegges satt opp ved hjelp av WebDAV n?r webgruppen har f?tt apache 2 produksjonsklart. Meldt fra om slikt behov til unix-drift@usit.uio.no, helst n?r arkivet bes opprettet.
Om en ikke har en passende brukergruppe ? knytte prosjektet til, kan en be om ? f? en opprettet via Brukerinfo. Mer informasjon om dette finner man p? dokumentasjonen for Brukerinfo p? f?lgende URL:
http://www.uio.no/tjenester/it/brukernavn-passord/brukerinfo/hjelp/grupper/oppretting.html
3???Tips om bruk av Subversion
Oppsett av arkivet ut over opprettingen gj?res av prosjektdeltagerne selv. Her er noen tips:
- Boken "Version control with Subversion" av Collins-Sussman, Fitzpatrick og Pilato
- Subversion-prosjektets hjemmeside
- Subversion p? Wikipedia
- SVK for offline-redigering med subversion
3.1???Epost ved commit
Oppsett av epostutsending ved innsjekking av endringer beskrevet i Subversion tips page. Det fikses ved ? opprette en kj?rbar fil ved navn post-commit i hooks/-katalogen i arkivet. Innholdet kan v?re omtrent som dette:
#!/bin/sh REPOS="$1" REV="$2" project="project-name" mailto=list@uio.no /local/share/subversion/hook-scripts/commit-email.pl "$REPOS" "$REV" -s SVN:$project $mailto
4???Oppskrifter for administrator av Subversjon-tjenesten
4.1???Diskstruktur for Subversion-tjenesten
Tjenesten er satt opp p? en maskin der alle uio-brukere har tilgang, slik at vi kan gi SSH-tilgang til arkivene. Dette kan bli endret i framtiden, hvis vi velger WebDAV som tilgangsprotokoll. Vi har to maskiner til Subversion:
- vcs-usit.uio.no
- Har alias svn.usit.uio.no og brukes til interne USIT-repositories.
- vcs-uio.uio.no
- Har alias svn.uio.no og er den generelle Subversion-tjenesten for alle UiO-brukere.
Subversion-arkivene ligger i et LVM-volum montert under /usit/<maskinnavn>/subversion-uio/, og en symlink /svnroot som peker dit er satt opp for brukerne. Den symlinken skal alltid brukes i stedet for full path for ? sikre at svn-URLer ikke endrer seg hvis tjenesten flyttes.
Prosjektarkiv opprettes s? under /svnroot/prosjektnavn/, men de ?nskede filrettigheter. De skal opprettes med et databaseformat (FSFS) som h?ndterer tilgang via NFS, slik at tjenesten i overgangsfaser kan kj?re p? flere maskiner mot samme nettverksdisk, og slik at tjenesten kan kj?re mot disktjenester som NetApp. FSFS er det som brukes i gjeldende versjon av subversion.
4.2???Hvordan opprette subversion-arkiv for et nytt prosjekt
Alle foresp?rsler om nytt subversion-arkiv skal ha egen RT-sak, og saksnummeret skal legges inn i /svnroot/prosjektnavn/README.txt. Dette gj?res for ? sikre at informasjon om hvorfor arkivet eksisterer er samlet p? et sted.
Et nytt subversion-arkiv opprettes av person med root-tilgang p? vcs-uio.uio.no (eller vcs-usit.uio.no) ved hjelp av svnadmin create, og gis s? de ?nskede filrettigheter for tilgang. Det er ikke n?dvendig ? spesifisere FSFS-format til svnadmin, da det er default i versjonen vi bruker. Oppskriften er som f?lger. Skriptet /site/bin/usit-svn-create utf?rer de n?dvendige kommandoene, og b?r brukes for ? redusere sjansen for menneskelig feil:
/site/bin/usit-svn-create <RT-ticket-id> <prosjektnavn> <filgruppe>
Eksempel:
# /site/bin/usit-svn-create "#12345" usit-tools ucore info: Oppretter /svnroot/usit-tools. info: Kj?r denne hvis kun gruppen skal ha lesetilgang til arkivet: chmod -R o-rwX /svnroot/usit-tools
Scriptet utf?rer disse kommandoene for ? opprette et arkiv. Merk at arkiv som skal v?re lesbare for alle skal opprettes litt forskjellig fra arkiv som kun skal v?re lesbare for gruppen:
# svnadmin create /svnroot/prosjektnavn # chown -R root:filgruppe /svnroot/prosjektnavn # chmod -R g+rwX /svnroot/prosjektnavn # chmod -R o-w /svnroot/prosjektnavn # find /svnroot/prosjektnavn -type d | xargs chmod g+s # echo "This repository was requested in RT #RT-ticket." >> /svnroot/prosjektnavn/README.txt
Hvis arkivet ikke skal v?re lesbart/tilgjengelig for andre enn medlemmene i gruppen, s? m? lesetilgang fjernes for alle andre:
# chmod -R o-rwX /svnroot/prosjektnavn
4.4???Sikkerhetskopiering
Med databaseformatet FSFS kan filene p? disken sikkerhetskopieres direkte uten spesiell dumping. Normal inkrementell TSM-backup brukes dermed for backup.
4.5???Utvide lagringsplassen
LVM brukes i dag for styre lagringsplassen til arkivene. For ? utvide brukes normale LVM-kommandoer som beskrevet i Introduksjon til Logical Volume Management (LVM).
4.6???Oppsett av anonym tilgang
Anonym lesetilgang til arkivkatalogene aktiviseres ved ? gi alle lesetilgang til katalogene p? filsytemet. Dette er satt opp ved hjelp av svnserve og xinetd. Filen /etc/xinet.d/svn er opprettet med f?lgende innhold:
# default: off # description: The svnserve provide anonymous access to subversion service svn { disable = no socket_type = stream wait = no user = svn server = /local/bin/svnserve server_args = -r /svnroot -i -R log_on_failure += USERID }
En symlink /svnroot/svnroot -> . er satt opp for ? kunne ha samme URL-struktur p? anonym og ikke-anonym tilgang.
4.7???Internt USIT-tjeneste svn.usit.uio.no
For mer sikkerhetsf?lsomme arkiver har USIT en egen tjeneste p? svn.usit.uio.no. Denne er satt opp p? samme m?te som beskrevet her, og nye arkiver etterlyses p? samme m?te via unix-drift.