Ich weiß nicht, ob es ein Witz war, aber ich habe einmal gelesen, was als formale Definition einer Datei in einem Versionssystem wie git, hg oder svn bezeichnet wurde. Es war so etwas wie ein mathematisches Objekt wie ein Homöomorphismus. War das ein Witz oder gibt es wirklich eine Informatiktheorie über Versionierungssysteme und die Mathematik von VCS?
terminology
reference-request
Niklas
quelle
quelle
Antworten:
Sie denken an einen Tweet von Isaac Wolkerstorfer (@agnoster) :
Leider ist es ein Witz. Wie der Autor über Quora schrieb :
Dies wurde beim Programmierstapelaustausch und beim Mathematikstapelaustausch erörtert .
Scherz beiseite, es wurde an der Formalisierung der Versionskontrolle gearbeitet. Eine Anstrengung, die Theorie und Praxis verbindet, ist die Arbeit an der Patch-Theorie von David Roundy über Darcs . Das Hauptziel der Theorie ist das Modellieren der Verschmelzung und insbesondere der Konfliktlösung. Das Darcs-Wiki enthält eine Einführung in die Theorie und einige Hinweise sowie eine Bibliographie (die nicht mehr aktuell ist, wenn Sie eine aktuelle Ansicht zu diesem Thema wünschen, aber eine Übersicht über das Jahr 2009 von Petr Baudiš enthält ) und eine Liste mit Vorträgen ( welches neueres Material enthält). Es gibt auch ein Wikibook . Ein wegweisendes Papier ist Ein prinzipieller Ansatz zur Versionskontrollevon Andres Löh, Wouter Swierstra und Daan Leijen3 .
Die Patch-Theorie führt zu einem kategorialen Modell, das kürzlich in A Categorical Theory of Patches von Samuel Mimram und Cinzia Di Giusto sowie in Homotopical Patch Theory von Carlo Angiuli, Ed Morehouse, Daniel R. Licata und Robert Harper untersucht wurde . In der Arbeit von Mimram und Di Giusto hat das Modell Dateien als Objekte und Patches als Morphismen. Ich denke, das macht das Zusammenführen eines Zweigs zu einem Functor - einem Endofunctor, wenn Sie in einem einzigen Repository arbeiten. "Homöomorpher Endofunktor" macht für mich keinen Sinn. Unter Berücksichtigung der Homotopietheorie sind die Unterverteilungen eines Hilbert-Raums möglicherweise nicht so weit entfernt ...
quelle
Natürlich gibt es einen mathematischen Formalismus für Versionskontrollsysteme. In CS gibt es für praktisch jeden Algorithmus einen mathematischen Formalismus. Für viele gibt es mehrere Formalismen. Es gibt keine 1: 1-Beziehung zwischen Formalismen und den von ihnen modellierten Systemen . Die Modelle können von einfach bis komplex reichen. Hier ein Beispiel für VCS / SCM, ebenfalls von Swierstra, noch nicht zitiert.
SCM hat auch viele Ähnlichkeiten mit dem Konzept "paralleler Universen / Zeitlinien" und Zeitreisen, die manchmal in Science-Fiction-Filmen verwendet werden. Es erfasst den Zustand des sich entwickelnden Systems zu verschiedenen Zeitpunkten oder "Schnappschüssen". Es gibt "Branches" und "Merges". Siehe auch Zeitleisten .
quelle