Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Software(technik)praktikum Tutorial: Subversion (SVN)

Ähnliche Präsentationen


Präsentation zum Thema: "Software(technik)praktikum Tutorial: Subversion (SVN)"—  Präsentation transkript:

1 Software(technik)praktikum Tutorial: Subversion (SVN)
Software(technik)praktikum – SVN-Tutorial

2 Kurz: Übersicht Versionsmanagement Werkzeuge
siehe auch Vorlesungs-Folien 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

3 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

4 Synchronisation von Dateien
Repository src Main.java,v edit App.java,v edit doc index.html,v main.html,v src src Main.java Main.java App.java App.java Update Update doc SVN doc index.html Commit index.html Commit main.html main.html Benachrichtigung (z.B. per ) Software(technik)praktikum – SVN-Tutorial

5 Concurrent Versions System (CVS) Subversion (SVN)
Werkzeuge Concurrent Versions System (CVS) Älteres System 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 2.1./2.2.: Versionierung bezieht sich auf komplette Ordner, nicht auf einzelne Dateien. 2.3.: Das heißt aber nicht, dass der Umgang mit Binärdaten gut funktionieren würde. Also trotzdem möglichst binäre Formate vermeiden. 2.4.: .svn-Ordner: Nicht drin rumpfuschen, wenn‘s nicht unbedingt sein muss. Software(technik)praktikum – SVN-Tutorial

6 Subversion trunk Haupt-Entwicklungszweig In der Regel arbeitet man darin branches Neben-Entwicklungszweige tags Markierungen für bestimmte Zeitpunkte z.B. „Release 1.0“ Alles sind Ressourcen in SVN, keine separaten Konzepte für Branches und Tags Software(technik)praktikum – SVN-Tutorial

7 Grundsätzliche Tipps (1)
Keinen nicht compilierbaren Code einchecken 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

8 Grundsätzliche Tipps (2)
Aussagekräftige Commit-Kommentare Schlecht: „ClassA.java geändert“ Besser: „NPE-Bug behoben“ Gut: „Bug #1234 behoben, verursacht durch NPE in ClassA.main()“ Zeilen nicht zu lang werden lassen Zeilenbasiertes Mischen beim Update Wichtig für LaTeX 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

9 Eclipse: Subversive (1)
documentation/gettingStarted/ aboutSubversive/install.php Help  Software Updates… Available Software, Add Site… SVN Update Sites: subversive/0.7/update-site/ subversive/download/eclipse/2.0/ update-site/ Software(technik)praktikum – SVN-Tutorial

10 Eclipse: Subversive (2)
Subversive-Eclipse-Plugins Benötigt: SVN Team Provider mind. einen SVN Connector, z.B. SVNKit, JavaHL Optional: SVN Team Provider Localization SVN Integration for Mylyn SVN JDT Ignore Extensions Eines von vielen Tutorials: Software(technik)praktikum – SVN-Tutorial

11 Eine Alternative zu Subversive ist Subclipse:
Eclipse: Subclipse Eine Alternative zu Subversive ist Subclipse: Außerhalb von Eclipse bietet sich unter Windows der SVN-Client TortoiseSVN an: Software(technik)praktikum – SVN-Tutorial

12 Diese Übungen können im Team-Repository durchgeführt werden
Praktische Übungen Diese Übungen können im Team-Repository durchgeführt werden Teams bilden zu je zwei Leuten (A / B) und gemeinsam arbeiten Software(technik)praktikum – SVN-Tutorial

13 B: Team  Synchronize, Update
Übung 1: Neue Klasse Check Out bzw. A: Neue Datei Neue Klasse erstellen: Factorial.java Fakultäts-Funktion public static long fac(int n) rekursiv implementieren Team  Synchronize (auf Projekt) SVN Add to version control… Commit B: Team  Synchronize, Update Software(technik)praktikum – SVN-Tutorial

14 Merging A: Methode fac() durch eine iterative Version ersetzen
Übung 2: Merging Merging A: Methode fac() durch eine iterative Version ersetzen B: Methode public static void printfac() ergänzen, die die Fakultäten von 5 und 10 ausgibt (wichtig: unterhalb von fac()); aufrufen in main()-Methode A: Compare with… A: Synchronize with Repository, Einchecken B: Compare with … B: Synchronize with Repository, Einchecken, Update, Einchecken Software(technik)praktikum – SVN-Tutorial

15 Übung 3: Konflikte Konflikte 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 B: Einchecken A: Entweder Konflikt auflösen (Doppelklick auf Datei in Sync View, Copy All Non-Conflicting Changes, Rest manuell links anpassen) Commit A: Oder Update und schauen Konflikt auflösen (in Sync View Rechtsklick  Edit Conflicts, anschließend Mark as Merged), Commit Software(technik)praktikum – SVN-Tutorial

16 Übung 4: Revision History
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

17 Branch/Merge A: Neuen Branch erzeugen:
Übung 5: Branch/Merge Branch/Merge 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-swtpra12/team_#TEAM#“), Start working in the branch B: Begrenzung auf n ≤ 20 in fac() einbauen und einchecken B: Branch mit trunk mergen: TeamMerge, URL = „branches/test-swtpra12 ¬ /team_#TEAM#/de.upb.swtpra12.svntutorial“ Konflikte lösen, Commit Software(technik)praktikum – SVN-Tutorial

18 SVN: Weitere Infos Weitere Informationen auf den WWW- Seiten des Softwaretechnikpraktikums und Weitere Frontends: TortoiseSVN Unterstützt MS Office, OpenOffice Software(technik)praktikum – SVN-Tutorial

19 Umgang mit Word-Dokumenten
Übung 6: MS Office Umgang mit Word-Dokumenten A, B: TortoiseSVN installieren A: Word-Dokument anlegen und mit zwei Absätzen versehen, Einchecken B: Update A, B: Beide verändern jeweils einen Absatz A, B: Commit / Update Software(technik)praktikum – SVN-Tutorial


Herunterladen ppt "Software(technik)praktikum Tutorial: Subversion (SVN)"

Ähnliche Präsentationen


Google-Anzeigen