Versjonskontroll

From Programvareverkstedet

English

Denne siden skal inneholde litt informasjon om versjonskontrolltjenerne som brukes av PVV.

Versjonskontrollsystemer

Git

Git er et moderne og desentralisert versjonskontrollsystem. Det at systemet er desentralisert innebærer at når man sjekker ut et repository, følger all historikk og metadata automatisk med. Dette betyr at man kan undersøke historikken, opprette eller smelte sammen prosjektgrener og commit'e lokalt - uten noe network latency eller krav om internettilkobling. Git utmerker seg særlig når gjelder fleksibilitet innen branching/merging.

Se ellers den offisielle dokumentasjonslisten for mer informasjon.

Subversion

Subversion (ofte forkortet svn) er et revisjonskontrollsystem, primært for kildekode. Alle filene til et prosjekt blir liggende i et repository, som inneholder den Rette Kopien av filene, samt alle endringer som er gjort på dem. Folk som jobber med filene må sjekke dem ut fra reposet, endre filene lokalt, og sjekke dem inn i reposet igjen dersom andre skal kunne hente ut endringene.


Utviklingsserveren

Serveren dev.pvv.ntnu.no kjører tjenester til bruk for prosjekter på PVV.

Git

Prosjekter skal legges inn i /srv/git/PROSJEKTNAVN på utviklingsserveren. Autentisering skjer via ssh, slik at alle med brukerkonto hos PVV automatisk skal få tilgang til prosjektene.

Prosjektene på serveren kan sjekkes ut til mappen /PATH/TIL/PROSJEKTNAVN/ ved hjelp av en kommando på formen:
git clone ssh://BRUKERNAVN@dev.pvv.ntnu.no/git/PROSJEKTNAVN /PATH/TIL/PROSJEKTNAVN

Hvis du allerede har et lokalt git-repository du vil laste opp til serveren, kan du bruke git clone --bare for å lage en kopi av repositoriet, og deretter dytte denne til utviklingsserveren via ssh.
git clone --bare /PATH/TIL/PROSJEKT /PATH/TIL/KOPI
scp -r /PATH/TIL/KOPI BRUKERNAVN@dev.pvv.ntnu.no:/srv/git/PROSJEKTNAVN

Subversion

Serveren kjører subversion gjennom apache2. Subversion-filene til et prosjekt blir liggende under /srv/svn/PROSJEKTNAVN på dev.pvv.ntnu.no. Brukere autentiseres gjennom http-autentiserings-mekanismen til apache2. Siden vi autentiserer brukere mot PAM, vil alle pvv-brukere kunne få autentiserte brukere i apache.

Prosjektene på serveren kan sjekkes ut ved hjelp av en kommando på formen:
svn co https://dev.pvv.ntnu.no/svn/PROSJEKTNAVN

Se denne siden for mer informasjon om oppsettet.


Github

PVV har også en konto på Github, som brukes til noen samarbeidsprosjekter.

Powerdot

I repositoriet Powerdot ligger det en presentasjonsmal som benytter LaTeX med Powerdot-pakken, samt noen hjemmelagde makroer. Dersom du føler at standardmalen mangler noe, er det bare å lage en fork i Github og sende en offisiell pull-request når du har reparert malen.

Version Control

This page should contain some information on the version control servers that are used by PVV.

Version Control Systems

Git

Git is a modern and decentralized version control system. That the system is decentralized implies that when one checks out a repository, all history and metadata is automatically included. This means that one can inspect the history, create or merge together project branches and commit locally - without ant network latency or required internet connections. Git excels at flexibility within branching/merging.

Otherwise, see the official documentation for more information.

Subversion

Subversion (often shortened to svn)is a revision control system, primarily for sourcecode. All the files of a project stay in a repository, which contains the Correct Copy of the files, and all changes that are made to them. People that work with the files have to check them out of the repository, change the files locally, and check them into the repository again if others are to extract the changes.

The Development Server

The server dev.pvv.ntnu.no runs services that could be used for projects at PVV.

Git

Projects should be put in /srv/git/PROJECTNAME on the development server. Authentication happens through ssh so that everyone with a user account at PVV can get access to the projects.

The projects on the server can be checked out to the folder PATH/TO/PROJECTNAME by a command on the form:
git clone ssh://USERNAME@dev.pvv.ntnu.no/git/PROJECTNAME /PATH/TO/PROJECTNAME

If you already have a local git repository you desire to upload to the server, you can use git clone --bare to make a copy of the repository, and thereafter push this to the development server by ssh.
git clone --bare /PATH/TO/PROJECT /PATH/TO/COPY
scp -r /PATH/TO/COPY USERNAME@dev.pvv.ntnu.no:/srv/git/PROJECTNAME

Subversion

The server runs subversion through apache2. The subversion-files of a project remain under /srv/svn/PROJECTNAME at dev.pvv.ntnu.no. Users are authenticated through the http-authentication mechanism of apache2. Because we authenticate users against PAM, all PVV-users can have their users authenticated in apache.

The projects on the servers can be checked out by a command on the form:
svn co https://dev.pvv.ntnu.no/svn/PROJECTNAME

See this page for more information on the setup on the setup.

Github

PVV also has an account on Github, that can be used for some collaboration projects.

Powerdot

In the repository Powerdot there is a presentation template that uses LaTeX with the Powerdot package, and some macros. If you feel that the default template lacks something, just make a fork on Github and send an official pull-request when you have fixed the template.