Versionierungs-Überblick

Sie können Allegra so konfigurieren, dass bestimmte Vorgangstypen in bestimmten Bereichen versioniert werden. Das erlaubt es Ihnen, parallel mehrere Versionen eines Vorgangs zu halten, Versionen miteinander zu vergleichen und auf eine vorherige Version zurückzugehen. Dieses Leistungsmerkmal bietet sich besonders für Dokumente im Wiki an.

Versionierung von Vorgängen

In Allegra können Sie die meisten Vorgangstypen so konfigurieren, dass sie „versioniert“ werden können. Eine Ausnahme sind Dokumentordner, die nicht versionierbar sind. Welche Vorgangstypen versioniert werden können, ist für jeden Arbeitsbereichstyp konfigurierbar. Typischerweise werden nur Vorgänge der Klasse “Dokument” im Wiki versioniert, nicht aber Vorgangstypen wie Aktionspunkte, Tickets, Fehlerberichte etc. Wir unterscheiden zwischen „expliziter“ und „impliziter“ Versionierung. Für explizit versionierbare Vorgangstypen können

  • direkt neue Versionen angelegt werden

  • alte Versionen restauriert werden

  • alte Versionen angezeigt werden

  • Versionen miteinander verglichen werden

Für implizit versionierbare Vorgangstypen können

  • alte Versionen angezeigt werden

  • Versionen miteinander verglichen werden

Die implizite Versionierung führt dazu, dass untergeordnete Vorgänge eines Dokument automatisch eine neue Version erhalten, wenn das Dokument selbst eine neue Version erhält. Typischerweise betrifft das Dokumentabschnitte und eingebettete Vorgänge. Neue Versionen solcher Vorgänge können dann nicht direkt (explizit) erstellt werden, sondern nur indirekt über die (explizite) Erstellung einer neuen Version des übergeordneten Dokuments.

Versionen

In Allegra kann ein (Wiki-) Dokument in einer beliebigen Anzahl von Versionen vorliegen. Die aktuellste Version heißt „HEAD“. Nur der HEAD kann mit dem Dokumenteditor geändert werden, alle anderen Versionen sind unveränderlich. Es ist möglich, zu einer vorherigen Version zurückzukehren. In diesem Fall wird eine Kopie der alten Version erstellt und in den HEAD kopiert. Es ist möglich, die ältesten Versionen zu löschen und nur die letzten x Versionen oder alle zu einer Baseline gehörenden Versionen zu behalten.

Eine neue Dokumentversion wird durch den Bearbeiter explizit erstellt. Nur ganze Dokumente können explizit festgeschrieben oder versioniert werden. Dokumentabschnitte und eingebettete Vorgänge werden „implizit“ versioniert, d. h. indirekt durch die Erstellung einer neuen Version des beinhaltenden Dokuments.

Baselines

Eine Baseline ist eine Sammlung von Dokumenten in einer bestimmten Version. Eine Baseline bezieht sich immer auf einen bestimmten Zweig (Branch). Dokumente, die zu einer Baseline gehören, können Verweise (Links) auf andere Dokumente in anderen Baselines enthalten, z. B. von anderen Branches oder Arbeitsbereichen.

Baselines sind unveränderlich; Vorgänge, die über Baselines angezeigt werden, können nicht bearbeitet werden. Baselines können als Momentaufnahmen eines Zweiges zu einem bestimmten Zeitpunkt betrachtet werden.

Eine Baseline bezieht sich immer auf einen einzelnen Arbeitsbereich oder ein Projekt. In einer Arbeitsbereichshierarchie wird die Versionierung und das Baseline-Verfahren nur für die Leaf-Arbeitsbereiche unterstützt. Leaf-Arbeitsbereiche zeichnen sich dadurch aus, dass sie selbst keine untergeordneten Bereiche haben.

Branches

Branches oder Verzweigungen bieten die Möglichkeit, gleichzeitig an verschiedenen Versionen desselben Dokuments zu arbeiten. Beispielsweise kann sich ein Dokument in der Entwicklung befinden, während es auch als veröffentlichte und vorherige Version vorliegt. Man könnte also einen Zweig „4.3 Unstable“ und einen Zweig „4.2 Final“ haben, die zumeist dieselben Dokumente mit HEAD-Versionen und ähnlichen, aber teilweise unterschiedlichen Inhalten haben.

Ein Zweig bezieht sich immer auf einen einzelnen Arbeitsbereich oder ein Projekt. Ein Arbeitsbereich oder Projekt kann eine beliebige Anzahl von Verzweigungen haben. Es gibt immer einen Anfangszweig, den wir als „Master“-Zweig bezeichnen. Mit Ausnahme des Hauptzweigs haben alle anderen Zweige einen Quellzweig, von dem sie stammen. In einer Arbeitsbereichs-Hierarchie werden Versionierung und Verzweigung nur für die Leaf-Arbeitsbereiche unterstützt. Es gibt zwei Arten von Verzweigungen:

  • Vererbungsmodus

  • Kopiermodus

In beiden Modi werden die Dokumentstruktur und das umgebende Dokument physisch in den Zielzweig kopiert. Im Vererbungsmodus werden die Dokumentabschnitte nur dann physisch in den neuen Zweig kopiert, wenn sie geändert werden. Andernfalls werden sie von ihrem Quellzweig geerbt. Dies bedeutet für den Fall, dass ein Dokumentabschnitt im Quellzweig geändert wird, dass auch der abgeleitete Zweig geändert wird.

Im Kopiermodus werden alle Dokumentbereiche des Quellzweigs in den Zielzweig kopiert. Dies bedeutet, dass Änderungen im Quellzweig keine Auswirkungen auf den Zielzweig haben.

Versionierung eingebetteter Vorgänge

Es ist möglich, Vorgänge in den Beschreibungstext eines Dokuments oder Dokumentenabschnitts einzubetten. Derart referenzierte Vorgänge sollten implizit oder gar nicht versioniert werden (siehe „Versionierung von Vorgängen“) .

Die explizite Versionierung von Dokumenten mit der impliziten Versionierung eingebetteter Vorgänge ist der Standardfall. Werden eingebettete Vorgänge nicht versioniert, führt eine Änderung an einem solchen Vorgang zu Änderungen an sämtlichen referenzierenden Dokumenten. Das entspricht wahrscheinlich nicht dem Verhalten, dass man sich üblicherweise wünscht.