Monotone
# Monotone

Monotone ist ein freies verteiltes Versionskontrollsystem. Monotone verwaltet Versionen von Dateien unabhängig von Dateiumbenennungen und gruppiert Versionen in Changesets. Die Design-Prinzipien basieren auf verteilter Verwaltung und verwenden Prüfsummen als Datei-Versionsstempel (über SHA1-Hashfunktionen) und zur Authentifizierung der Nutzeraktionen (über RSA-Signaturen). Unter Microsoft Windows kann es z. B. mit dem Client Guitone verwendet werden.

Monotone diente als Inspiration für Git und findet unter anderem bei Pidgin und i2p Verwendung.

## Eigenschaften

Monotone ist ein verteiltes Versionskontrollsystem, das sich in einigen Eigenschaften von traditionellen Versionskontrollsystemen unterscheidet:

* Verteilter Ansatz zur Versionskontrolle
* Verwendet SHA-1-Hashes zur Identifikation einzelner Dateien wie auch Gruppen von Dateien anstelle von Versionsnummern.
* Jeder Monotone-Client kann als Server agieren. Es existiert kein separater Monotone-Server.

Weitere Eigenschaften sind:

* Unterstützung der Internationalisierung
* Portables Design, implementiert in C++
* Monotone kann CVS-Projekte importieren, ähnliche Bedienkommandos wie CVS unterstützen den Umstieg.
* Signieren der Revisionen über RSA-Zertifikate
* Access Control: Die Zugangskontrolle basiert weniger wie bei traditionellen zentralisierten Systemen auf Einschränkungen des Eintrags in das Repository, sondern darauf, dass der Monotone-Endnutzer entscheidet, wann und wie er diese Information in seinem Arbeitsbereich nutzen will. Dies geschieht über das in Monotone eingebaute Vertrauenskonzept.
* Build Integration: Ermöglicht, Build- und Testsysteme über Commits zu triggern.
* Kompaktes Repository: Monotone komprimiert Dateien und Datei-Deltas mittels gzip.
* CVS-Import: Monotone kann die CVS-Historie importieren.
* Log Review: Formatierungsrichtlinien für Log-Nachrichten
* Repository-Replikation: Replikation bzw. Spiegelung des Repository zur Lastverteilung oder als Backup
* Offline: Entwickler können – abgesehen von Synchronisationsprozessen – vollständig offline arbeiten.
* Historienbestand bei Umbenennung: Dateien und Verzeichnisse können umbenannt werden ohne Historien zu verlieren oder künftige Merges zu behindern.
