Softwaretechnikpraktikum Fachgebiet Softwaretechnik Heinz Nixdorf Institut Universitt Paderborn
Software(technik)praktikum © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Tutorial: Subversion (SVN) Software(technik)praktikum – SVN-Tutorial
Übersicht § Kurz: Übersicht Versionsmanagement § siehe auch Vorlesungs-Folien © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Werkzeuge § Grundsätzliches § Integration in Eclipse § Praktische Übung mit SVN § Commits, Updates, Konflikte lösen § Branch/Merge (wenn noch Zeit) § Weitere Tipps Software(technik)praktikum – SVN-Tutorial
© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versions- und Konfigurationsmanagement Beobachtung: § Software besteht aus vielen verschiedenen Dokumenten (Anforderungen, Design, Programmcode, Dokumentation, Handbuch, …) § Software-Entwicklung ist Teamarbeit Konsequenz: § Viele verschiedene Personen greifen auf dieselbe Menge von Dokumenten zu § Oft bearbeiten verschiedene Personen gleichzeitig (unabhängig voneinander) dasselbe Dokument Bearbeitungs-Konflikte vermeiden Software(technik)praktikum – SVN-Tutorial
Synchronisation von Dateien Repository src Main. java, v App. java, v doc index. html, v main. html, v © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn edit src Main. java App. java doc index. html main. html Update Commit edit SVN Commit Benachrichtigung (z. B. per E-Mail) Software(technik)praktikum – SVN-Tutorial src Main. java App. java doc index. html main. html
Werkzeuge § Concurrent Versions System (CVS) § Älteres System © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Subversion (SVN) § Versionierung des kompletten Projektarchivs anstatt einzelner Ressourcen § Bessere Unterstützung für Erstellen, Löschen, Umbenennen § Besserer Umgang mit Binärdaten § Lokale Kopien des „Basis“-Versionen der Ressourcen Software(technik)praktikum – SVN-Tutorial
Subversion n trunk Haupt-Entwicklungszweig o In der Regel arbeitet man darin o n branches © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn o n Neben-Entwicklungszweige tags Markierungen für bestimmte Zeitpunkte o z. B. „Release 1. 0“ o n Alles sind Ressourcen in SVN, keine separaten Konzepte für Branches und Tags Software(technik)praktikum – SVN-Tutorial
Grundsätzliche Tipps (1) § Keinen nicht compilierbaren Code einchecken © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Bugs sind in der Regel kein Problem, es sei denn sie machen das Programm unbenutzbar § Für Experimente mit größeren Folgen Branches verwenden § Nur notwendige Ressourcen einchecken § Keine Ausgabe-Dateien (*. class, …) oder Logfiles § In Eclipse: „Derived Resources“ • Flag wird oft automatisch gesetzt, kann aber auch manuell gesetzt werden § Besser: svn: ignore benutzen Software(technik)praktikum – SVN-Tutorial
Grundsätzliche Tipps (2) § Aussagekräftige Commit-Kommentare © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Schlecht: „Class. A. java geändert“ § Besser: „NPE-Bug behoben“ § Gut: „Bug #1234 behoben, verursacht durch NPE in Class. A. main()“ § Zeilen nicht zu lang werden lassen § Zeilenbasiertes Mischen beim Update § Wichtig für La. Te. X § Binär-Dateien nur wenn nötig, weil § automatisches Mischen nicht möglich (Ausnahmen: siehe Folie 18) § Konflikte schwer zu beheben Software(technik)praktikum – SVN-Tutorial
Eclipse: Subversive (1) © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § http: //www. eclipse. org/subversive/ documentation/getting. Started/ about. Subversive/install. php § Help Software Updates… Available Software, Add Site… § SVN Update Sites: http: //download. eclipse. org/technology/ subversive/0. 7/update-site/ http: //www. polarion. org/projects/ subversive/download/eclipse/2. 0/ update-site/ Software(technik)praktikum – SVN-Tutorial
Eclipse: Subversive (2) § Subversive-Eclipse-Plugins § Benötigt: • SVN Team Provider • mind. einen SVN Connector, z. B. SVNKit, Java. HL © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Optional: • SVN Team Provider Localization • SVN Integration for Mylyn • SVN JDT Ignore Extensions § Eines von vielen Tutorials: http: //cs. wustl. edu/~cytron/cse 132/Help. Docs /Subversive/subversive. htm Software(technik)praktikum – SVN-Tutorial
Eclipse: Subclipse § Eine Alternative zu Subversive ist Subclipse: © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § http: //subclipse. tigris. org/ § Außerhalb von Eclipse bietet sich unter Windows der SVNClient Tortoise. SVN an: § http: //tortoisesvn. tigris. org/ Software(technik)praktikum – SVN-Tutorial
Praktische Übungen © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Diese Übungen können im Team-Repository durchgeführt werden § Teams bilden zu je zwei Leuten (A / B) und gemeinsam arbeiten
Übung 1: Neue Klasse § Check Out § https: //svn-serv-lab. cs. upb. de/swtpra 2012 -XY bzw. https: //svn-serv-lab. cs. upb. de/sopra 2012 -XY © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § A: Neue Datei 1. Neue Klasse erstellen: Factorial. java 2. Fakultäts-Funktion public static long fac(int n) rekursiv implementieren 3. Team Synchronize (auf Projekt) 4. SVN Add to version control… 5. Commit § B: Team Synchronize, Update Software(technik)praktikum – SVN-Tutorial
Übung 2: Merging © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Merging 1. A: Methode fac() durch eine iterative Version ersetzen 2. B: Methode public static void printfac() ergänzen, die Fakultäten von 5 und 10 ausgibt (wichtig: unterhalb von fac()); aufrufen in main()-Methode 3. A: Compare with… 4. A: Synchronize with Repository, Einchecken 5. B: Compare with … 6. B: Synchronize with Repository, Einchecken, Update, Einchecken Software(technik)praktikum – SVN-Tutorial
Übung 3: Konflikte © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Konflikte 1. A, B: In der printfac()-Methode die Berechnung der Fakultät durch eine Schleife ersetzen, die alle Fakultäten von 1… 5 (A) oder 1… 10 (B) berechnet 2. B: Einchecken 3. A: Entweder 1. 2. Konflikt auflösen (Doppelklick auf Datei in Sync View, Copy All Non-Conflicting Changes, Rest manuell links anpassen) Commit A: Oder 1. 2. Update und schauen Konflikt auflösen (in Sync View Rechtsklick Edit Conflicts, anschließend Mark as Merged), Commit Software(technik)praktikum – SVN-Tutorial
Übung 4: Revision History © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § A: Tag erstellen mit dem Namen „Version 0. 4 von team_#TEAM#“ § A, B: Umgang mit der Versions-Geschichte üben § Show History § Diverse Compare-Operationen § Replace With Revision, Get Content § Einfach ausprobieren! Software(technik)praktikum – SVN-Tutorial
Übung 5: Branch/Merge § Branch/Merge © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn 1. A: Neuen Branch erzeugen: • • Fakultäts-Berechnung mit Caching implementieren Neue Funktion static long fac_cache(int n) wird in fac() aufgerufen • Team Branch (Name: „test-swtpra 12/team_#TEAM#“), Start working in the branch 2. B: Begrenzung auf n ≤ 20 in fac() einbauen und einchecken 3. B: Branch mit trunk mergen: • • Team Merge, URL = „branches/test-swtpra 12 ¬ /team_#TEAM#/de. upb. swtpra 12. svntutorial“ Konflikte lösen, Commit Software(technik)praktikum – SVN-Tutorial
SVN: Weitere Infos © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Weitere Informationen auf den WWWSeiten des Softwaretechnikpraktikums und http: //subversion. tigris. org http: //svnbook. red-bean. com § Weitere Frontends: § Tortoise. SVN http: //tortoisesvn. net/ • Unterstützt MS Office, Open. Office Software(technik)praktikum – SVN-Tutorial
Übung 6: MS Office © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn § Umgang mit Word-Dokumenten 1. A, B: Tortoise. SVN installieren 2. A: Word-Dokument anlegen und mit zwei Absätzen versehen, Einchecken 3. B: Update 4. A, B: Beide verändern jeweils einen Absatz 5. A, B: Commit / Update Software(technik)praktikum – SVN-Tutorial
- Slides: 19