Startseite / Weiterführende Themen / Änderungsverfolgung / Revisionen holen

Revisionen holen

FirstSpirit arbeitet mit einem revisionsbasierten Repository. Dabei kommt eine spezielle Technik zur Verwaltung der zeitlichen Entwicklung der Daten zum Einsatz: Das so genannte Revisions-Management.

Eine Revision lässt sich als eine Art „Schnappschuss“ des gesamten Repositories zu einem bestimmten Zeitpunkt vorstellen. Im Gegensatz zu einer Version, die sich in der Regel nur auf ein einzelnes Objekt bezieht, wird bei einer Revision der Gesamtzustand aller Objekte im Repository beschrieben.

Revisionen werden durch eine fortlaufende Nummerierung beschrieben (Revisions-ID), wobei es immer genau eine aktuelle Revision für das gesamte Repository gibt. Wenn ein Repository bearbeitet wird, werden alle vorgenommen Änderungen mit einer neuen Revisionsnummer verknüpft. Die Revisionsnummer ergibt sich aus der um eins erhöhten, zuletzt aktuellen Revisionsnummer des Gesamt-Repositories. Alle nicht veränderten Objekte behalten ihre alten Revisionsnummern bei. Wird ein Objekt verändert, wird es im Repository nicht überschrieben, sondern als neues Objekt (mit einer höheren Revisionsnummer) eingefügt.

Um festzustellen, in welchem Zeitraum bestimmte Änderungen innerhalb des Projekts stattgefunden haben, muss zunächst die entsprechende Revision des Repositories geholt werden.

Die Revision kann direkt über das Projekt geholt werden. Dabei kann entweder die gewünschte eindeutige Revisions-ID, z. B.:

project.getRevision(revisionId); 

oder das Datum der gewünschten Revision übergeben werden, z. B.:

project.getRevision(context.getStartTime()); 

Das übergebene Datum muss nicht eindeutig einer Revision zugeordnet sein. Es kann ein beliebiger Datumswert übergeben werden. Falls zu diesem Datum eine Revision existiert, wird diese zurückgeliefert, andernfalls liefert die Methode die nächst kleinere Revision zurück.

Eine Auswahl von Revisionen innerhalb eines bestimmten Zeitraums kann über die Methode:

project.getRevisions(Revision from, Revision to, int maxCount, Filter<Revision> filter);

bereitgestellt werden. Dabei werden zwei Revisionen übergeben. Die erste Revision („from“) definiert die untere und die zweite Revision („to“) definiert die obere Revisionsgrenze. Neben diesen beiden Revisionen, werden alle Revisionen geliefert, die eine höhere Revisions-ID als die untere Revisionsgrenze und eine geringere Revisions-ID als die obere Revisionsgrenze besitzen.

Die jeweils aktuellste Revision, kann über:

getRevision(new Date());

geholt werden.

start = project.getRevision(context.getStartTime()); 
end = project.getRevision(new Date());
revisions = project.getRevisions(start, end, 0, null);

Optional kann noch der Parameter „maxCount“ übergeben werden, der die Anzahl der zurück gelieferten Revisionen auf einen Höchstwert begrenzt, und – ebenfalls optional – ein Filter zur weiteren Eingrenzung.

© 2005 - 2024 Crownpeak Technology GmbH | Alle Rechte vorbehalten. | FirstSpirit 2024.13 | Datenschutz