Darcs
 
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Veränderung (letzte Änderung) (Korrektur, Autor, Normalansicht)

Verändert: 59c59
Hört sich ähnlich an wie das Konzept von SubVersion, dass also nicht mehr eine Version an eine Datei geknüpft ist, sondern an eine Änderung. --bs
===SubVersion===

Verändert: 61c61
:Nein, das ist völlig orthogonal. SubVersion verwaltet (genau wie CVS) einen Baum von Revisionen; zwischen je zwei Revisionen vermittelt ein Patch. Darcs verwaltet die Patches und Abhängigkeiten zwischen diesen. Aus der gleichen Menge lassen sich so viel mehr denkbare Revisionen generieren, etwa indem Patches weggelassen werden. Das geht bei Darcs im Prinzip überall, bei SubVersion kann immer nur der letzte Patch weggelassen werden. -- UdoStenzel
Genau wie bei SubVersion ist eine Revision nicht an eine Datei, sondern an den Zustand des gesamten Repositories geknüpft. Dennoch ist Darcs völlig anders. SubVersion verwaltet (genau wie CVS) einen Baum von Revisionen; zwischen je zwei Revisionen vermittelt ein Patch. Darcs verwaltet dagegen die Patches und Abhängigkeiten zwischen diesen. Aus der gleichen Menge Patches lassen sich so viel mehr denkbare Revisionen generieren, etwa indem Patches weggelassen werden. Das geht bei Darcs im Prinzip überall, bei SubVersion kann immer nur der letzte Patch weggelassen werden.

Darcs ist ein in der SpracheHaskell geschriebenes Programm zur VersionsKontrolle. Im Gegensatz zu CVS verwaltet es keine Dateiversionen sondern Projektänderungen (Patches). Alle Aktionen werden als Operationen auf diesen Projektänderungen verstanden, zum Beispiel wie ein Patch über einen anderen hinweg getauscht wird. Diese Projektänderungen können beliebig zwischen Projektteilnehmern oder einem zentralen Archiv ausgetauscht werden. Eine Projektänderung besteht aus Einzeländerungen. Diese können (derzeit) sein:

Vor dem Aufnehmen einer Projektänderung wird der Benutzer gefragt, aus welchen Einzeländerungen die Projektänderung zusammengesetzt werden soll. Danach werden benutzerdefinierte Tests für das derart aktualisierte Projekt gestartet. Zumindest sollte dieser Test die Programmtexte übersetzen, um zu überprüfen, ob die zusammengestellten Änderungen konsistent sind.

Die Trennung zwischen Archiv und Arbeitskopie ist aufgehoben, mit jeder Arbeitskopie bekommt man das gesamte Archiv aller Versionen. Abzweige gibt es nur in Form weiterer Arbeitskopien. Zwei Arbeitskopien auf dem gleichen Dateisystem können sich aber die gleichen Patches über Verweise im Dateisystem teilen.

Teile

Vorteile:

Nachteile:
Theorie

Der Darcs-Autor DavidRoundy? hat eine "Theorie der Änderungen" entwickelt, welche beschreibt, wann man zwei aufeinanderfolgende Projektänderungen vertauschen kann und was zu tun ist, wenn zwei Änderungen nicht vertauschbar sind.

Was aus mathematischer Sicht etwas befremdlich klingt, ist, dass der Autor schreibt, dass das verwendete Prinzip aus der Quantenmechanik abgeleitet ist. Was er meint, ist, dass Quantenphysiker mit komplexen unitären Matrizen rechnen, strenggenommen sogar nur multiplizieren und dass diese natürlich immer invertierbar sind. Manchmal sind Faktoren auch vertauschbar, das aber nicht immer. Die Matrix, oder genauer der durch die Multiplikation mit der Matrix beschriebene Operator, ist für ihn das Analogon für eine Projektänderung. Eine Projektänderung kann man ebenfalls immer rückgängig machen (Invertierbarkeit), aber zwei aufeinanderfolgende Änderungen kann man nicht immer vertauschen (Kommutierbarkeit). Es geht also eigentlich nicht um Quantenmechanik und auch nicht um lineare Algebra und Matrizen, sondern um endliche Gruppen (nicht-abelsch, also nicht kommutativ). Mit dem gleichen Recht könnte man behaupten, dass Darcs seinen Ursprung im Rubikwürfel hat oder in der Betrachtung von Wurzeln algebraischer Gleichungen. Beides lässt sich ebenfalls mit endlichen Gruppen beschreiben.

Vergleich mit anderen Systemen

SubVersion

Genau wie bei SubVersion ist eine Revision nicht an eine Datei, sondern an den Zustand des gesamten Repositories geknüpft. Dennoch ist Darcs völlig anders. SubVersion verwaltet (genau wie CVS) einen Baum von Revisionen; zwischen je zwei Revisionen vermittelt ein Patch. Darcs verwaltet dagegen die Patches und Abhängigkeiten zwischen diesen. Aus der gleichen Menge Patches lassen sich so viel mehr denkbare Revisionen generieren, etwa indem Patches weggelassen werden. Das geht bei Darcs im Prinzip überall, bei SubVersion kann immer nur der letzte Patch weggelassen werden.

Resourcen


KategorieVersionskontrolle
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert: 16. November 2005 22:57 (diff))
Suchbegriff: gesucht wird
im Titel
im Text