Göm menyn

TDDC74 Programmering: Abstraktion och modellering

Laborationer

VT 2014

SVN-FAQ

Eftersom det förekommit frågor om add och commit, kommer här en konkretisering. Informationen här finns i inlämningsinformationen och subversion-guiden, men är här mer direkt inlämningsanpassad och kondenserad.

Är jag klar med min inlämning?

Tänkt scenario: vi har skrivit en komplettering av labb 2, och gjort klart labb 3 (båda i ett här). Vi tror att vi åtminstone har gjort svn mv av kompletteringen till rätt ställe. Är vi klara? Detta är i stort en övning i att använda svn status.

  1. Gå till katalogen du checkade ut allt till. Det betyder förmodligen (om du inte lagt det någon annan stans) att du ska skriva
    cd ~/kurs/tddc74/labs
  2. Skriv svn status. Här har vi lite exempeldata att tolka:
    andma397@astmatix:labs> svn status
    D komplettering/lab2.rkt
    ? tempfil.txt~
    ? redovisning/lab3.rkt
    A + redovisning/lab2.rkt

    Detta betyder att man vid nästa commit kommer att ta bort en lab2.rkt från kompletteringskatalogen (Delete) och lägga till den (Add) i redovisningskatalogen. De andra filerna behandlas överhuvudtaget inte. OBS: Inget har ännu lämnats in.

  3. Vi gör en commit:
    andma397@astmatix:labs> svn commit -m "La2 - komplettering 2"
    Autentiseringsregion (realm): IDA undergrad Subversion server
    Lösenord för "andma397":
    Raderar komplettering/lab2.rkt
    Lägger till redovisning/lab2.rkt

    Arkiverade revision 308.
    Först efter en commit kan något ha lämnats in. Notera vilka ändringar som gjordes ovan (Raderar...).

Att lämna in något nytt, eller se till att något versionshanteras

Vi fortsätter på exemplet ovan, och tänker oss att vi vill lämna in lab3.rkt. Filen är inte versionshanterad.

  1. Vi vill lämna in lab3.rkt också. Frågetecknet ovan betydde att filen finns, men inte är versionshanterad (därför kom den inte med i vår commit ovan). Detta händer typiskt sett om vi kopierar filen till redovisningskatalogen utan att göra något med svn. Vi kontrollerar hur det ser ut, ser till att filen versionshanteras (add), och gör sedan en commit.
    andma397@astmatix:labs> svn status
    ? tempfil.txt~
    ? redovisning/lab3.rkt
    andma397@astmatix:labs> svn add redovisning/lab3.rkt
    A redovisning/lab3.rkt
    andma397@astmatix:labs> svn commit -m "Labb 3"
    Autentiseringsregion (realm): IDA undergrad Subversion server
    Lösenord för "andma397":
    Lägger till redovisning/lab3.rkt
    Skickar filinnehåll .

    Arkiverade revision 309.

Har jag lämnat in något?

  1. Vi bekräftar att det inte finns några ändringar som inte har laddats upp:
    andma397@astmatix:labs> svn status
    ? tempfil.txt~

    Detta innebär att vi inte har någon fil i denna katalog eller någon av dess underkataloger (redovisning, komplettering,...) som vi är intresserade av att ladda upp i inlämningssyfte. Vi hade en lab3 att lämna in förut, och nu är den inlämnad.

    Den som ytterligare vill bekräfta för sig själv att detta har skett, kan mata in adressen till sin svn-katalog (https://svn-und.ida...) i en webbläsare. Där ser vi senaste revisionen (och kan klicka på redovisning för att se om rätt filer finns där).

Kataloger spelar roll!

Om vi står i redovisningskatalogen och skriver svn status ser vi bara ändringar i denna katalog, och dess underkataloger.

På samma sätt kommer en commit där bara att lägga upp ändringar i redovisnings-katalogen och dess underkataloger.

När vi vill kontrollera vilka ändringar som är kvar att ladda upp, kan det (i detta mycket småskaliga arbete) vara värt att gå till själva "huvudkatalogen" ni gjorde checkout i. Därför föreslogs det ovan att man skrev cd ~/kurs/tddc74/labs.

Det finns inget som hindrar att man står i redovisningskatalogen och skriver svn add lab3.rkt, och sedan gör commit från någon annan katalog.


Sidansvarig: Anders Märak Leffler
Senast uppdaterad: 2014-03-03