Monotone

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

monotone ist ein freies, verteiltes Versionskontrollsystem, welches sich vor allem durch Verlässlichkeit, Korrektheit und einfache Verständlichkeit auszeichnet. Es diente dabei in der Vergangenheit als Inspiration für viele andere Systeme, wie etwa git oder mercurial. monotone ist bereits direkt in zahlreichen Linux Distributionen und BSD Varianten (Debian Linux, FreeBSD Ports, Mac OS X MacPorts, NetBSD pkgsrc, openSuSE Linux, Fedora Linux, Gentoo Linux) enthalten.

Projektinformationen

Logo von monotone

Projektbeschreibung

Versionen (Revisionen) werden in monotone eindeutig über die SHA1-Summe des Changesets identifiziert, wobei monotone, anders als bspw. git, die individuelle Historie von Dateien und Verzeichnissen beim Zusammenführen, Kommentieren und Umbenennen stets korrekt berücksichtigt, da die Identität eines versionisierten Eintrags von Anfang bis Ende erhalten bleibt.

Jeder Revision können durch Nutzer beliebige Zertifikate angehängt werden, die zum einen für die Modellierung von Zweigen, Datumsangaben oder Autoreninformationen benutzt werden, zum anderen aber auch Rückschlüsse auf die Verlässlichkeit bzw. dem Vertrauen der signierten Revision zulassen und im Zusammenspiel mit in der Programmiersprache Lua geschriebenen Hooks die Grundlage für eine Vielzahl benutzerdefinierter Workflows legen.

Das zugrundeliegende Merge-Verfahren, genannt "mark-merge", ist einzigartig in der VCS-Welt und erlaubt selbst das Zusammenführen komplizierterster Baumstrukturen, bleibt jedoch trotzdem für jeden Nutzer leicht nachvollziehbar. Tools wie monotone-viz oder ViewMTN erlauben dabei die Anzeige der teilweise komplexen Revisionsgraphen, und auch sonst gibt es eine Reihe von Werkzeugen, die die Arbeit mit monotone abseits der Kommandozeile vereinfachen, wie beispielsweise guitone oder mtn-browse.

monotones Datenbasis besteht einfach aus einer lokalen SQLite-Datei, die die gesamte Historie eines oder mehrerer Projekte beinhaltet und mit der Ausschnitte bzw. Änderungen über das monotone-eigene Netsync-Protokoll oder per SSH mit anderen Knoten ausgetauscht werden können.

In der Projekthistorie seit 2004 gab es, auch durch exzessive funktionale Tests und Unittests, sowie die Eigenheit der Entwickler, alle paar Zeilen Zusicherungen (assertions) im Code einzubauen, nicht einen einzigen kritischen Bug, der zu einem Datenverlust geführt hätte. Durch eine Vielzahl von Sicherheitschecks wurden in der Vergangenheit durch monotone sogar vereinzelt Software- (NFS) bzw. Hardwareprobleme (defekte Festplatten) bei Nutzern festgestellt.

Weitere Informationen


Foto Werner Fischer.jpg

Autor: Werner Fischer

Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.


Das könnte Sie auch interessieren

Foresight Linux
Navit
Redaxscript