Software(technik)praktikum Tutorial: Subversion (SVN)

Slides:



Advertisements
Ähnliche Präsentationen
Forschungszentrum Informatik
Advertisements

Projekt Tools: Subversion, Wiki Nikolay Nachev Seminar StuPro cims cims.
Einführung in Subversion (SVN)
„Ansicht Arbeitsbereich“ ist die nutzerspezifische Ansicht, in der alle Dokumente aufgelistet sind, die dem angemeldeten Benutzer zugeordnet sind. D.h.
PowerBuilder und SVN Erste Schritte bei der Versionsverwaltung von Softwareprojekten mit Subversion (SVN) PBUGG 2009, A. Schmidt.
Übung 5 Mehrstufige Client/Server-Systeme mit Enterprise Java Beans
Imperative Programmierung -Entwicklungswerkzeuge
Werkzeuge und Softwareumgebung von Christian Michele.
Einführung in die Entwicklungsumgebung
1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen und Komplexität Einführung in Berechenbarkeit, Formale Sprachen und Komplexitätstheorie Wintersemester.
Fachpraktikum Graphische Benutzungsoberflächen Sommersemester 2008 Steffen Koch, Christoph Müller, Guido Reina, Christiane Taras, Michael Wörner Versionsverwaltung.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
HTML - Einführung Richard Göbel.
Java: Objektorientierte Programmierung
Java: Dynamische Datentypen
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Werkzeuge und Softwareumgebung von Christian Michele.
Datenbanksystementwicklung – Praktikum & Vorlesung – WS 2004/2005
Zusammenfassung Vorwoche
Christian Schindelhauer
Christian Schindelhauer
1/15 UNIVERSITY OF PADERBORN Projektgruppe KIMAS – CVS Projektgruppe KIMAS CVS Daniel Karuseit.
Brandenburgische Technische Universität Cottbus Program Profiling Andrzej Filipiak Übung Testen von Software SoSe 2006.
Word Über- arbeitungs-F. Blog Groove inhaltlich Mittelding äußerlich Mittelding SharePoint DokumentPostings wenige viele Check-Out/-In Varianten Distribute.
1 Reverse Engineering WS 07 / 08 A. Zündorf. Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University 2 Organisatorisches.
Teamorganisation: Versionsverwaltung
1 WS 2012 Software-Engineering II Versionsverwaltung.
Concurrent Versions System
Software Design Patterns Extreme Programming (XP).
Portierung von Java nach C
DVG Kommentare1 Kommentare. DVG Kommentare 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht.
DVG Einführung in Java1 Einführung in JAVA.
DVG Kommentare 1 Kommentare. 2 Kommentare Es gibt zwei Arten von Kommentaren: einzeilige Kommentare // der Kommentar geht bis zum Ende der Zeile.
Java in 9 Folien Besser: Online-Buch Go to Java 2.
Wismar Business School
FH-Hof HTML - Einführung Richard Göbel. FH-Hof Komponenten des World Wide Webs WWW Browser HyperText Transfer Protocol (HTTP) via Internet WWW Server.
GIT und Redmine Übung.
Software-Projektführung
Herzlich Willkommen zu „Einführung in die Programmierung mit Java“
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
EIN CMS MACHT SCHULE Tina Gasteiger.
Einführung in die Programmiersprache Java
Falko Trojahn SMI Softmark Informationstechnologien GmbH Webseiten mit.
Kostenlose Alternative zu Microsoft Office
Cooperation unlimited © Zühlke Juni 2009 Hansjörg Scherer Folie 1 Cooperation unlimited TFS als BackEnd für Visual Studio und Eclipse.
Moodle in der Volksschule: 1
Softwaretechnikpraktikum: Vorlesung 2
Subversion für Anfänger und solche, die es noch werden wollen ;)
Textverarbeitungsprogramme
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Herbers Excel-Server - der Workshop
Concurrent Versions System
Wissen praktisch ablegen
CMS Content-Management-Systeme (CMS), dienen der Verwaltung und Pflege von Dokumenten und Inhalten in Inter- und Intranetanwendungen. Den Entwickler oder.
Web-basierter Unterricht in der Computergraphik: Konzepte und Realisierung von interaktiven Online-Kursen Reinhard Klein, Frank Hanisch Wilhelm-Schickard.
Marco Behnke Git free & open source, distributed version control system Git.
Programmiervorkurs WS 2014/15 Methoden
Programmiervorkurs WS 2014/15 Schleifen
Eclipse – PHP Tool Integration (PTI) Sven Kiera, TWT Interactive GmbH.
17. Januar 2006 Navigations- und Ortungssysteme Handy-Kompass Peter Ammon Michael Kaiser Thomas Zsebedits.
Continuous Integration
Thomas Rau, Peter Brichzin Repositories zur Unterstützung von kollaborativen Arbeiten in Softwareprojekten.
HORIZONT 1 Product HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / Das IT – Informationssystem.
Seminararbeit Release Management von Web-Systemen Minh Tran Lehrstuhl für Software Engineering RWTH Aachen
Wir schaffen Wissen – heute für morgen Paul Scherrer Institut SwissFEL: Alfresco Themen: Dokumente versionieren Werner Zoller (ATK) PSI,
, Jens Rettig1 Einsatz von Versionsverwaltungstools im ORACLE – Umfeld Dipl.-Inform. Jens Rettig
Das SVN Eclipse Plugin. Wofür ist SVN gedacht? Nutzung von SVN mit Eclipse Perspektive einrichten Repository einbinden Mit dem Repository arbeiten Konflikt.
Orxonox SVN Subversion in Orxonox: ORXONOX DevelopmentFinished Versions trunk Maintainer Version Almost always running branches Developer Version Copies.
 Präsentation transkript:

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

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

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 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 E-Mail) Software(technik)praktikum – SVN-Tutorial

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

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

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

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

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

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

Eine Alternative zu Subversive ist Subclipse: 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

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

B: Team  Synchronize, Update Übung 1: Neue Klasse Check Out https://svn-serv-lab.cs.upb.de/swtpra2012-XY bzw. https://svn-serv-lab.cs.upb.de/sopra2012-XY 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

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

Ü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

Ü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

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

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

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