Introduktion till CVS,17 november 2002 1(27) CVS-Introduktion CyberRymden 2001-10-03 Marcus Rejås <marcus@rejas.net> $Id: slides.tex,v 1.2 2002/11/17 18:16:40 rejas Exp $
Introduktion till CVS,17 november 2002 2(27) Meta information Kurslitteratur Version management with CVS, Per Cederqvist Labkurs Laborationsunderlag, Marcus Rejås
Introduktion till CVS,17 november 2002 3(27) Del 1: Grundläggande Vad är versionshantering? Vad är CVS? CVS features Använda CVS CVS i en idealisk värld CVS klienter
Vad är versionshantering? Versionshantering används för att hantera olika versioner av källkoder eller andra filer. Alla som programmerat vet att man ibland vill backa... Finns många system för detta. Både tredjepart och native i applikationer. Är man ensam och har gott om utrymme duger spara undan med nytt filnamn metoden. Introduktion till CVS,17 november 2002 4(27)
Introduktion till CVS,17 november 2002 5(27) Vad är CVS? Började som script kring RCS Klient - Server Alla filer sparas på servern Inga delade filsystem
Introduktion till CVS,17 november 2002 6(27) CVS features Samtidig access av flera användare (till och med på samma filer) Flera projekt i samma repository Smidig loggning av ändringar Möjlighet att visa skillnader mellan versioner Stöd för binära filer Triggers vid händelser i repositoryt.
Introduktion till CVS,17 november 2002 7(27) Använda CVS Checkout, commit, Update Checkout Hämtar en privat kopia av en modul Commit Update Ändrar filerna i repositoryt så att de blir som de i den privata katalogen Uppdaterar filerna i arbetskatalogen med de i repositoryt.
Introduktion till CVS,17 november 2002 8(27) Arbetsgång 1. Checka ut koden i en arbetskatalog. 2. Editera Testa din kod 3. Update för att hämta ändringar från andra. 4. Testa igen om något uppdaterades i 4. 5. Commita din kod Repetera tills utvecklingen är klar
Introduktion till CVS,17 november 2002 9(27) CVS i en idealisk värld Rita en bild till det här Utveckare 1 och 2 checkar ut var sin modul Båda editerar Utveckare 1 commitar sin Utveckare 2 uppdaterar och commitar Utveckare 1 uppdaterar Båda har nu senaste versionerna och samma sak finns i repositoryt.
Introduktion till CVS,17 november 2002 10(27) CVS klienter Cvs Emacs WinCVS TkCVS JCVS CVSWeb
Introduktion till CVS,17 november 2002 11(27) Del 2: Mer om CVS CVS servern CVS repositoryt När och vad skall commitas Versioner, releaser och taggning Brancher, förgreningar Binära filer och problem.
Introduktion till CVS,17 november 2002 12(27) CVS servern Servern heter cvs.lab.rejas.se Repositoryt ligger i /cvsroot Åtkomst sker via ssh Backup tas varje natt.
Introduktion till CVS,17 november 2002 13(27) CVS repositoryt Alla filer ligger i samma repository Alla versioner av en fil sparas i en och samma fil. Man jobbar ALDRIG med en fil direkt i repositoryt utan man ckeckar alltid ut den och commitar den.
När och vad skall commitas? Endast kod som kompilerar skall commitas. Annars kan man ställa till det för andra. I CVS bör inga binärer till källkoder finnas. De är ju värdelösa om man inte har samma system som de byggts på. Däremot skall alla källkoder och information om hur man bygger binarer finnas (t.ex. README, INSTALL och Makefile). Introduktion till CVS,17 november 2002 14(27)
Versioner, releaser och taggning Versionsnummren lever fritt Vid varje commit får en fil en ny version. Denna verision får inte blandas ihop med releaser av källkoden. Då man vill markera ett visst läge i utvecklingen, t.ex. en release taggar man koden. Man kan sedan checka ut all kod som den var vid taggningen. Eller börja en förgrening där. Introduktion till CVS,17 november 2002 15(27)
Introduktion till CVS,17 november 2002 16(27) Brancher, förgreningar Ibland vill man göra förgreninar i utvecklingstråden. Om man vill testa något som man misstänker kan bli ett sidospår Man vill utveckla vidare på en tidigare release.
Binära filer och problem... Många CVS finesser fungerar inte på Binära filer. Visa differenser mellan versioner Slå ihop ändrade filer Hur lösa problemen? Änvändaren tar de olika filerna och använder externt program (till exempel MS Word) för att se skillnader och lösa sammanslagningar. Introduktion till CVS,17 november 2002 17(27)
Introduktion till CVS,17 november 2002 18(27) Del 3: Praktik I denna del installerar vi en klient och labbar mot ett riktigt repository.
Introduktion till CVS,17 november 2002 19(27) WinCVS WinCVS är en grafisk klient till Microsofts operativsystem. Då denna väl är konfigurerad kan man komma åt filer under CVS kontroll genom att klicka sig fram. Man jobbar sedan med filerna i vilket program som helst.
Introduktion till CVS,17 november 2002 20(27) CygWin Cygwin är en POSIX implementation för Microsofts miljö. Den är mycket bra och ger tillgång till många av de verktyg som tidigare bara funnits i Unix-system. Med Cygwin föjer alla de verktyg med som behövs för att använda CVS i vår miljö.
Introduktion till CVS,17 november 2002 21(27) Unix/Linux I de flesta Unix/Linux distributioner så följer det med både CVS och SSH. Med andra ord, det är bara och köra.
Introduktion till CVS,17 november 2002 22(27) Lab 1: Checka in, ut, uppdatera Instruktioner finns på förelägget Installera din klient. Checka ut modulen cvstest. Ändra, uppdatera och checka in flera gånger. Kontrollera vad som händer vid kollisioner.
Lab 2: Taggar och keywords Instruktioner finns på förelägget Du måste ha gjort lab 1 Skapa modulen dittnamn med tre filer. Filerna skall innehålla samtliga keywords. Modulen skall ges flera symboliska versioner (taggar). Även versionsnummret skall ökas manuellt (till 2.x.x). Introduktion till CVS,17 november 2002 23(27)
Introduktion till CVS,17 november 2002 24(27) Lab 3: Förgreningar Instruktioner finns på förelägget Du måste ha gjort lab 2 Checka ut din modul Skapa minst en förgrening Utveckla på både grenen och main Slå ihop grenarna (Merge) Rita upp vad du gjort
Introduktion till CVS,17 november 2002 25(27) Lab 4: Lägg till och ta bort filer Instruktioner finns på förelägget Du måste ha gjort lab 2 Checka ut din modul Lägg till en fil Ta bort en fil Byt namn på en fil.
Introduktion till CVS,17 november 2002 26(27) Lab 5: Filstatus och binärfiler Instruktioner finns på förelägget Du måste ha gjort lab 4 Checka ut din modul Kolla loggarna på alla filer Om du missade ovan, läs loggen även på den fil du raderade Lägg en binärfil till din modul och ändra den sedan.
Introduktion till CVS,17 november 2002 27(27) Del 4: Ännu mer om CVS Reserverade checkouts (Edit)