Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement 1 Software(technik)praktikum: Vorlesung 2: Versionsmanagement11.03.2013.

Ähnliche Präsentationen


Präsentation zum Thema: "© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement 1 Software(technik)praktikum: Vorlesung 2: Versionsmanagement11.03.2013."—  Präsentation transkript:

1 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement 1 Software(technik)praktikum: Vorlesung 2: Versionsmanagement

2 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement Motivation Ausgangslage Softwareentwicklung ist Teamarbeit Viel (indirekte) Kommunikation nötig Entwicklungswissen muss dokumentiert wissen Software besteht aus vielen Dokumenten Lastenheft Pflichtenheft Analyse- und Designdokument Programmcode Dokumentation Handbuch Software(technik)praktikum: Vorlesung 2: Versionsmanagement 2

3 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement Motivation Konsequenz Verschiedene Personen greifen (gleichzeitig) auf Dokumente Oft bearbeiten verschiedene Personen gleichzeitig (unabhängig voneinander) dasselbe Dokument Software(technik)praktikum: Vorlesung 2: Versionsmanagement 3

4 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement Motivation Typische Probleme / Fragen Versionsmanagement Wo ist die aktuelle Version? Was ist die zuletzt lauffähige Version? Wo ist Implementierungsversion vom 01. April 2012? Und welche Dokumente beziehen sich auf diese Version? Welche Version wurde dem Kunden Schäfer präsentiert? Änderungsmanagement Was hat sich seit letzter Woche geändert? Wer hat diese Änderung gemacht? Warum wurde diese Änderung gemacht? Software(technik)praktikum: Vorlesung 2: Versionsmanagement 4

5 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement Motivation Einfache Lösungen Austausch der Dokumente via USB- Stick / Festplatte Austausch der Dokumente via Mail Netzwerkfestplatte Konventionen und Regeln werden im Team definiert Software(technik)praktikum: Vorlesung 2: Versionsmanagement 5

6 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement Motivation Einfache Lösungen erzeugen neue Problem Konventionen und Regeln werden nicht eingehalten Koordination ist aufwendig und führt zu Verzögerungen Varianten und Konfigurationen werden von Hand verwaltet Versions- und Änderungsfragen nicht bzw. nur schwer beantwortbar Geistige Kapazität wird mit Kleinkram verschwendet Fazit: Konventionen müssen technisch erzwungen werden! Software(technik)praktikum: Vorlesung 2: Versionsmanagement 6

7 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement Motivation Sinnvolle Lösung Versions- und Konfigurationsmanagementsysteme Lösen (bei vernünftiger Anwendung) alle genannten Probleme (fast) ohne Zusatzaufwand Bieten sogar Zusatzleistungen (z.B. einfache Datensicherung) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 7

8 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement Konzepte Versions- verwaltungs- system Dokumente in hierarchischer Struktur Zugriff und Modifikation von Dokumenten Koordination der Zugriffe und Modifikationen, insbes. Wahrung der Konsistenz Nutzer Repository Software(technik)praktikum: Vorlesung 2: Versionsmanagement 8

9 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Konsistenzmechanismen Optimistische Mechanismen System erlaubt gleichzeitiges Bearbeiten des Dokuments durch verschiedenen Personen System erkennt und integriert die Änderungen (Merging) Evtl. funktioniert das nicht automatisch; dann muss der Konflikt manuell beseitigt werden Pessimistische Mechanismen System verbietet gleichzeitiges Bearbeiten des Dokuments durch verschiedenen Personen (Sperrprotokolle) Beide Mechanismen haben Vor- und Nachteile (hierzu später mehr) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 9

10 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Versions- verwaltungs- system Lokale Kopien des Repositories (Arbeitsverzeichnis) Nutzer Repository Nutzer Software(technik)praktikum: Vorlesung 2: Versionsmanagement 10

11 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Pessimistischer Ansatz Ablauf zur Bearbeitung einer Datei file.txt: checkout file.txt checkin file.txt Zwischen checkout und checkin kann kein anderer Nutzer die Datei verändern. Genaue Syntax und Optionen der Kommandos hängen vom Versionsverwaltungssystem ab Software(technik)praktikum: Vorlesung 2: Versionsmanagement 11

12 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz update - Nutzer aktualisiert seine lokale Kopie des Repositories commit - Nutzer übergibt seine lokale Kopie an das Repository (Versionsnummer wird inkrementiert) Ändern der lokalen Kopie durch Nutzer jederzeit erlaubt (es gibt keine Sperren) update und commit sind (nahezu) jederzeit erlaubt Genaue Syntax und Optionen der Kommandos hängen vom Versionsverwaltungssystem ab Software(technik)praktikum: Vorlesung 2: Versionsmanagement 12

13 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Mischen (Merge): Szenario 1 file.txt Änderungen im Repository (durch commit anderer Benutzer) Änderungen im Arbeitsverzeichnis file.txt Software(technik)praktikum: Vorlesung 2: Versionsmanagement 13

14 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Mischen (Merge): Szenario 1 14 Software(technik)praktikum: Vorlesung 2 file.txt Änderungen im Repository Aktualisierte Version im Arbeitsverzeichnis update (+ ggf. merge) Merge: Änderungen aus dem Repository (seit der letzten Aktualisierung) und der Änderungen im lokalen Verzeichnis Software(technik)praktikum: Vorlesung 2: Versionsmanagement 14

15 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Mischen (Merge): Szenario 1 file.txt Änderungen im Repository Aktualisierte Version im Arbeitsverzeichnis update Bei gängigen Systemen funktioniert das erstmal nur mit Text-Dateien (z.B..java oder.tex) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 15

16 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Mischen (Merge): Szenario 2 file.txt Änderungen im Repository Änderungen im Arbeitsverzeichnis file.txt Software(technik)praktikum: Vorlesung 2: Versionsmanagement 16

17 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Mischen (Merge): Szenario 2 file.txt Änderungen im Repository Änderungen im Arbeitsverzeichnis file.txt update Konflikt Software(technik)praktikum: Vorlesung 2: Versionsmanagement 17

18 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Konflikte Konflikte werden in der Datei im Arbeitsverzeichnis markiert: <<<<<< Änderung Änderung 2 >>>>>> Konflikte müssen vom Benutzer in seiner Arbeitskopie von Hand korrigiert werden. Hinweis: Konflikte entstehen nur Arbeitsverzeichnis Software(technik)praktikum: Vorlesung 2: Versionsmanagement 18

19 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Mergen binärer Dateien Für Textdateien existieren gute Merge-Algorithmen Java, Latex,... somit gut vergleichbar und mergebar Für binäre Dateien müssen separate Merge-Algorithmen vorhanden sein Beispiel: MS Word-Dokument Word bietet jedoch intern Vergleichs- und Mergeoptionen Hinweis: In Versionsverwaltungssystemen kann man angeben, ob eine Datei binär ist Software(technik)praktikum: Vorlesung 2: Versionsmanagement 19

20 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Frage bzgl. Commit Frage: Was passiert, wenn der Nutzer ein commit durchführt, und dabei Änderungen im Repository noch nicht in sein Arbeitsverzeichnis übernommen hat? Antwort: Wird durch Repository-Client verboten. Client fordert, dass erst update ausgeführt wird Commit erst danach möglich Commit nur möglich, wenn lokales Repository konfliktfrei ist Software(technik)praktikum: Vorlesung 2: Versionsmanagement 20

21 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Commit-Unterbindung v100 Versions- verwaltungs- system v Software(technik)praktikum: Vorlesung 2: Versionsmanagement 21

22 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Commit-Unterbindung v100 Versions- verwaltungs- system v100* v Software(technik)praktikum: Vorlesung 2: Versionsmanagement 22

23 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Commit-Unterbindung v101 Versions- verwaltungs- system v100* v101 > commit up-to-date check failed Software(technik)praktikum: Vorlesung 2: Versionsmanagement 23

24 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Commit-Unterbindung v101 Versions- verwaltungs- system v101* v101 > commit up-to-date check failed > update M file.txt v100* Software(technik)praktikum: Vorlesung 2: Versionsmanagement 24

25 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Optimistischer Ansatz Commit-Unterbindung v102 Versions- verwaltungs- system v102 v101 > commit up-to-date check failed > update M file.txt > commit v101 v101* Software(technik)praktikum: Vorlesung 2: Versionsmanagement 25

26 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Unterstützung für Versions- management in Eclipse 26 Software(technik)praktikum: Vorlesung Software(technik)praktikum: Vorlesung 2: Versionsmanagement 26

27 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Vergleich: Pessimistisch vs Optimistisch Pessimistische Mechanismen ++ keine Konflikte -- kein gleichzeitiges Arbeiten an demselben Dokument (bei großen Dateien behindert es die Teamarbeit) -- Dateien können unabsichtlich lange gesperrt sein Optimistische Mechanismen -- Konflikte (oft vermeidbar bei sehr guter Absprache) ++ gleichzeitiges Arbeiten an Dokumenten möglich Für typische Softwareprojekte (große und verteilt arbeitende Teams) haben sich die optimistischen Mechanismen als zweckmäßiger erwiesen Software(technik)praktikum: Vorlesung 2: Versionsmanagement 27

28 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionierungsart Repository-Versionierung Repository-Versionierung Je commit gibt es eine neue Repository-Nummer Head ist neueste Repository-Version 28 Software(technik)praktikum: Vorlesung 2: Versionsmanagement Main.java index.html main.html V1 V2 V3 V4 Main.java Appl.java >>commit >

29 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionierungsart Dateiversionierung Dateiversionierung Jede Datei hat ihre eigene Version Je Commit werden Versionsnummern der Dateien inkrementiert Konfiguration: Menge von Dateiversionen Main.java Appl.javaindex.htmlmain.html V1 V2.0V1.1 V1.2 V1 V1.1 V1 V1.1 V1.2 Konfiguration: Heute (head) Release Software(technik)praktikum: Vorlesung 2: Versionsmanagement 29

30 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Weitere Features von Versionsmanagementsystemen Zugriff auf alte Versionen Alte Versionen sind jederzeit zugreifbar (wichtiger Unterschied zu simpler Netzwerkfestplatte) Versionsvergleich Differenz der Dateien markiert Änderungen Branching Alternative Entwicklungszweige ermöglichen das Versionieren von Varianten (z.B. Implementierung eines alternativen Benutzerinterfaces) Tagging Versionen markieren (z.B. Release 1.0) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 30

31 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Weitere Features von Versionsmanagementsystemen Kommitkommentar Mit jedem commit kann (und sollte) man in einem kurzen Kommentar angeben, welche Änderungen vorgenommen wurden Mailbenachrichtung Bei Änderungen von Dateien können automatisch Nachrichten an andere Nutzer verschickt werden Blame-Analyse Man kann für jede Datei feststellen, welche Zeile von welchem Nutzer zuletzt bearbeitet wurde ( blame ) Verknüpfung mit Ticketmanagementsystem Tickets (z.B. Trac) für Bug-Reports und Features-Requests können sich auf Versionsnummern beziehen Software(technik)praktikum: Vorlesung 2: Versionsmanagement 31

32 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Inhalt für das Repository Welche Dokumente und Dateien gehören ins Repository? Alle Dokumente und Dateien, die zur Software und ihrem Entwicklungsprozess gehören und nicht automatisch aus den anderen Dateien oder Dokumenten generiert werden können z.B. Keine temporären Latex-Dateien *.aux, *.bbl,... …vermeiden, trotzdem Kopien anzulegen! (Kopie (1) von …, Kopie (2) von …, Kopie (3) von …) Software(technik)praktikum: Vorlesung 2: Versionsmanagement 32

33 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Praktikum: SVN Im Praktikum nutzen wir optimistische Mechanismen Konkret: Subversion (SVN) Wird eingesetzt bei Apache, SourceForge, Google Code,... Features: Commit-Kommentare Mailbenachrichtung bei jedem Checkin Blame-Analyse Verknüpfbar mit Ticketmanagementsystem (z.B. Trac) Viele SVN-Clients, u.a. Subclipse und Subversive für Eclipse TortoiseSVN Integriert sich in Windows-Explorer Software(technik)praktikum: Vorlesung 2: Versionsmanagement 33

34 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Praktikum: SVN SVN unterstützt nur Repository-Versionierung SVN unterscheidet zwischen trunk (Stamm): Standardentwicklungspfad tags (Markierung): Meilensteine, Abgaben, Release,... branch (Verzweigung): temporäre Pfade für Varianten Zeit Software(technik)praktikum: Vorlesung 2: Versionsmanagement 34

35 © Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Zusammenfassung Versionsmanagementsysteme erleichtern das gemeinsame Arbeiten an Dokumenten und Dateien Änderungen sind nachverfolgbar Alte Versionen sind zugreifbar Im Praktikum nutzen wir das optimistische Verfahren SVN Üben Sie das Arbeiten mit SVN Nutzen Sie unser Tutorial auf der Webseite. Nutzen Sie die Tutorials im Web Software(technik)praktikum: Vorlesung 2: Versionsmanagement 35


Herunterladen ppt "© Fachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn Versionsmanagement 1 Software(technik)praktikum: Vorlesung 2: Versionsmanagement11.03.2013."

Ähnliche Präsentationen


Google-Anzeigen