De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Subversion Version control

Verwante presentaties


Presentatie over: "Subversion Version control"— Transcript van de presentatie:

1 Subversion Version control http://subversion.tigris.org/

2 Problemen ● Meerdere developers werken op dezelfde broncode: – Bestanden delen (e-mail, IM, gedeelde schijf) komt neer op bestanden overschrijven (eventueel indien nieuwer) – Onduidelijk wie de laatste development versie heeft ● Nood aan backup ● Nood aan geschiedenis

3 Oplossing ● Version control via Subversion (svn) ● Open source (gratis) ● Integratie met Eclipse, visual studio,... ● Alternatieven: – CVS (open source) – Perforce (commercieel) – MS Visual Source Safe (commercieel) ● Gebruikers: – Apache.org grotendeels overgeschakeld van CVS – SourceForge.net zal overschakelen van CVS

4 Subversion server-client ● 1 server bevat de laatste development versie (met geschiedenis) ● Elke developer is een client ● Developers synchroniseren naar goeddunken met de server ● Server is backup ● Server houdt geschiedenis bij ● Demo: subversion repository bekijken via webDav

5 svn checkout ● Bind een lokale map aan een svn URL ● Eenmalig ● Doet daarna een svn update ● Bijvoorbeeld: ● svn checkout http://svn.apache.org/repos/asf/logging/log4j/trunk/ log4j ● Demo (command line)

6 Checkout resultaat ● Lokale kopie ● Elke map bevat een.svn map: – Houd svn configuratie bij – Houd pristine copies bij – Nooit iets in veranderen ● Demo.svn map ● Doe geen move, rename en delete zonder medeweten van subversion ● Hoofdmap mag je wel zomaar verplaatsen

7 svn update ● Update lokale bestanden met server bestanden ● Dagelijks ● Remote gewijzigde bestanden worden: – Toegevoegd/gewijzigd/verwijderd indien ze lokaal niet veranderd zijn – Gemerged (met of zonder conflict) indien ze lokaal wel veranderd zijn

8 svn commit ● Plaats lokale wijzigingen op de server ● Nadat een stuk code compileert en uitvoerbaar is ● Andere developers krijgen de verandering bij hun volgende update ● Kan mislukken indien een bestand out of date is en eerst een update nodig is

9 Merging

10 svn add/move/remove ● Bestaande bestanden kan je gewoon wijzigen ● Nieuwe bestanden moet je specifiek toevoegen met svn add ● Overbodige bestanden moet je specifiek deleten met svn delete ● Uitgesteld tot volgende svn commit ● Gebeurt automatisch door subclipse

11 Subversion termen ● Revision: nummer dat bij elke commit met 1 verhoogt, niet te verwarren met project version ● De trunk: main line of development ● Branch: alternatief voor de trunk (enkel gebruiken bij hot fixes) ● Tag: benoemde revision (bij release) ● HEAD: laatste revision van de trunk

12 Workshop normaal ● Sluit Eclipse ● Hernoem C:\projects\museumapp naar museumapp_old_files ● Open Eclipse en cygwin ● Open Svn repository exploring en open de URL https:// / ● Checkout trunk (rechtermuisklik) als museumapp ● cd /cygdrive/c/projects ● svn co https:// / /trunk museumapp2 ● svn update museumapp2 (overlees output: geen wijzigingen) ● Kopieer alles uit museumapp_old_files naar museumapp ● Open Team synchronizing (subclipse) ● Synchronize ● Add alle nieuwe bestanden (rechtermuisklik) ● Commit de wijzigingen (rechtermuisklik) ● svn update museumapp2 (overlees output: wel wijzigingen) ● Verwijder museumapp_old_files

13 Workshop merge conflict ● Voeg in Eclipse (in museumapp) zowel voor Question als voor Answer een class javadoc lijn toe. ● Wijzig dezelfde bestanden in museumapp2 als volgt: – Bij Question voeg je onderaan een lijn commentaar toe – Bij Answer verander je ook de javadoc zoals je in eclipse deed, op dezelfde lijn ● svn update museumapp2 (overlees output: geen wijzigingen) ● svn commit -m “test” museumapp2 (overlees output: geen probleem) ● Synchronize in Eclipse (in museumapp) – Question: merged – Answer: merge conflict ● Doe een update en los het merge conflict op ● Commit in eclipse ● Verwijder museumapp2

14 Lokale bestanden ● Bestanden en mappen kunnen properties bevatten (meta-data) ● Properties worden ook gecommit naar server ● svn:ignore property bepaalt welke bestanden lokaal zijn – target (build directory) met alle gegenereerd bestanden (*.class,...) – IDE (Eclipse) files

15 Support ● Subversion websitehttp://subversion.tigris.org/http://subversion.tigris.org/ – Bij links vind je een lijst van subversion clients voor emacs, Verkenner, MS Visual Studio,... ● Subversion bookhttp://svnbook.red- bean.com/http://svnbook.red- bean.com/ ● Demo book (geschiedenis functionaliteit)


Download ppt "Subversion Version control"

Verwante presentaties


Ads door Google