1 / 19

Software(technik)praktikum Tutorial: Subversion (SVN)

Software(technik)praktikum Tutorial: Subversion (SVN). Übersicht. Kurz: Übersicht Versionsmanagement 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.

olin
Download Presentation

Software(technik)praktikum Tutorial: Subversion (SVN)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Übersicht • Kurz: Übersicht Versionsmanagement • 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 edit edit Benachrichtigung (z.B. per E-Mail) Repository src Main.java,v App.java,v doc index.html,v main.html,v src src Main.java Main.java App.java App.java Commit Commit Update Update doc SVN doc index.html index.html main.html main.html Software(technik)praktikum – SVN-Tutorial

  5. 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 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:ignorebenutzen 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) • http://www.eclipse.org/subversive/documentation/gettingStarted/aboutSubversive/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

  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: http://cs.wustl.edu/~cytron/cse132/HelpDocs/Subversive/subversive.htm Software(technik)praktikum – SVN-Tutorial

  11. Eclipse: Subclipse • Eine Alternative zu Subversive ist Subclipse: • http://subclipse.tigris.org/ • Außerhalb von Eclipse bietet sich unter Windows der SVN-Client TortoiseSVN an: • http://tortoisesvn.tigris.org/ Software(technik)praktikum – SVN-Tutorial

  12. 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. Übung 1: Neue Klasse • Check Out • https://svn-serv-lab.cs.upb.de/swtpra2012-XYbzw. https://svn-serv-lab.cs.upb.de/sopra2012-XY • A:Neue Datei • Neue Klasse erstellen: Factorial.java • Fakultäts-Funktionpublicstaticlongfac(intn)rekursiv implementieren • Team  Synchronize (auf Projekt) • SVN Add toversioncontrol… • Commit • B: Team  Synchronize, Update Software(technik)praktikum – SVN-Tutorial

  14. Übung 2: Merging • Merging • A: Methodefac() durch eine iterative Version ersetzen • B: Methodepublicstaticvoidprintfac()ergänzen, die die Fakultäten von 5 und 10 ausgibt (wichtig: unterhalb von fac());aufrufen inmain()-Methode • A:Comparewith… • A:Synchronizewith Repository,Einchecken • B:Comparewith … • B:Synchronizewith 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. Übung 5: Branch/Merge • Branch/Merge • A: Neuen Branch erzeugen: • Fakultäts-Berechnung mit Caching implementieren • Neue Funktion staticlongfac_cache(intn) wird in fac() aufgerufen • Team  Branch (Name: „test-swtpra12/team_#TEAM#“), Start working in thebranch • B: Begrenzung auf n ≤ 20 in fac() einbauen und einchecken • B: Branch mit trunkmergen: • 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 http://subversion.tigris.org http://svnbook.red-bean.com • Weitere Frontends: • TortoiseSVN http://tortoisesvn.net/ • Unterstützt MS Office, OpenOffice Software(technik)praktikum – SVN-Tutorial

  19. Ü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

More Related