Varför versionshantering?
När flera personer arbetar i ett projekt så skapas ett stort antal filer. Detta kan vara allt ifrån projektdokumentation och källkodsfiler till bilder och filmer.
I ett vanligt filsystem blir det snabbt kaos när olika personer går in och editerar olika filer, man kan helt enkelt inte hålla reda på vilken version som är den senaste. Detta hjälper ett versionshanteringssystem till med.
Ett versionshanteringssystem ser till att en fil alltid befinner sig i ett stabilt tillstånd även om flera personer har editerat den. Kort och gott kan man säga att man inte tillåts förändra någon version av en fil förutom den absolut senaste.
Andra finesser ett versionshanteringssystem erbjuder är att kika på gamla versioner av en fil, vad är ändrat och av vem, samt en hel del annat smått och gott.
I denna kurs är det obligatoriskt att använda ett versionshanteringssytem för att hantera projektdokumentationen.
Vad ska versionshanteras?
Det korta svaret är ALLT! Ett lite längre svar är alla filer som man själv editerar manuellt eller som behövs för att kunna leverera systemet. T.ex.
- Dokument som t.ex. projektplan, iterationsplan, risklista, kravspec, etc. etc.
- Implementation som källkod och grafik som t.ex. asp, php, psd filer.
- Innehåll till systemet som t.ex. bilder i orginalutförande som behövs (.psd filer).
- Manuellt genererat innehåll som t.ex. bilder som behövs fast i leveransformat (.jpg, .gif, .png)
- Projekt/IDE specifika filer som kan underlätta arbetet t.ex. Visual Studio Solution filer (.sln)
Versionshanteringen ska hälpa projektdeltagarna att vara up to date med projektdokumentationen, kunna arbeta på systemet, samt att kunna leverera systemet snabbt och enkelt.
Man ska alltså undivka att versionshantera sådant som genereras automatiskt, t.ex. av en kompilator, så det gäller att känna till sin utvecklingsmiljö så bra som möjligt.
Hur ska det versionshanteras?
Det är viktigt att man hittar en bra grundläggande struktur för sitt projekt så att man snabbt och enkelt kan hitta de filer man behöver. Exakt hur detta ser ut beror mycket på projektet och projektdeltagarna. Den mer detaljerade strukturen beror ofta på vilka utvecklingsverktyg man val och hur systemet skall levereras/deployas. Det är också viktigt att man har en arbetsrutin för versionshanteringen som alla kan följa. T.ex. om/hur man skall använda grenar (branches), hur man ska undvika konflikter, etc. Några länkar inriktat på Git och GitHub följer nedan.
Kom igång med Git på CoursePress
Testa grundläggande Git kommandon i en interaktiv miljö steg för steg (ca 15 minuter) du kan sen hitta mer hos codeschool.