13
Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme Beispiel Besonderheiten CVS mit eclipse Tools

Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Embed Size (px)

Citation preview

Page 1: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

1

FG Software Engineering

Teamorganisation: Versionsverwaltung

Übersicht• Wofür Versionskontrolle?• Sperrmechanismen• Systeme• Beispiel• Besonderheiten• CVS mit eclipse• Tools

Page 2: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

2

FG Software Engineering

Wofür Versionskontrolle?

Page 3: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

3

FG Software Engineering

Sperrmechanismen

pessimistische Sperren

• explizite Sperre pro Datei

• keine konkurrierenden Zugriffe keine Konflikte

Page 4: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

4

FG Software Engineering

Sperrmechanismen

optimistische Sperren

• Sperre nur beim einchecken

• update (Synchronisation) jeder Zeit möglich Konflikte (semiautomatische Behebung)

Page 5: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

5

FG Software Engineering

Systeme

● RCS – Revision Control System, der Anfang● CVS - Concurrent Versions System, der Klassiker

– keine Verzeichnisse– kein Umbenennen / Verschieben– kein Check-In Begriff– aber: gute Tool-Unterstützung

● SVN – Subversion, verbessertes CVS● Git – verteilte Versionsverwaltung, Linux Kernel

Entwicklung● Mercurial - OpenSolaris, XEN, Kernel-Entwicklung

Page 6: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

6

FG Software Engineering

CVS Beispiel

● Alice, Bob arbeiten an einem Projekt● beide checken die Version 1.1 vom Server aus● Alice bearbeitet die Datei Server.java, Client.java

(Zeile 42)● Bob bearbeitet Helper.java und Client.java (Zeile

23)● Alice checkt ein● Bob versucht einzuchecken Fehler● Bob führt ein Update durch

– neue Server.java– Merge von Client.java, kein Konflikt

● Bob checkt ein

Page 7: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

7

FG Software Engineering

CVS Beispiel Teil 2

● Bob ändert in HtmlPanel.java (Zeile 42)● Bob checkt ein● Alice ändert in HtmlPanel.java (Zeile 42)● Alice macht ein Update Konflikt

<<<<<<< HtmlPanel.javadoc1 = (HTMLDocument) html.getDocument();

=======doc = html.getDocument();

>>>>>>> 1.4● Alice behebt den Konflikt● Alice checkt ein

Page 8: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

8

FG Software Engineering

Timestamps / Tags / Branches

• CVS speichert (Rückwärts-)Deltas Wiederherstellen alter Versionen möglich• Versionen identifizierbar durch

– Timestamps– Revision Numbers– Markierungen (Tags)

• Verzweigungen (Branches) sind möglich

v 1.1

v 1.1.1.1

v 1.1.2.1

v 1.1.3.1

v 1.2 v 1.2.1.1

v 1.2.2.1

Page 9: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

9

FG Software Engineering

CVS mit eclipse

Page 10: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

10

FG Software Engineering

Konflikte

Page 11: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

11

FG Software Engineering

Tools: cvsmail

Page 12: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

12

FG Software Engineering

Tools: cvsweb

Page 13: Software Engineering I Leif Geiger 1 FG Software Engineering Teamorganisation: Versionsverwaltung Übersicht Wofür Versionskontrolle? Sperrmechanismen Systeme

Software Engineering I

Leif Geiger

13

FG Software Engineering

Tools: cvsstat