Große Dateien in Mercurial

Seit Version 2.0 gibt es für Mercurial eine Extension namens „largefiles“, die es erlaubt, auch große und vor allem Binärdateien mit im Repository zu verwalten. Die Konfiguration kann wie üblich auf Repository- oder Userebene erfolgen.

Mercurial hat von Hause aus einige Probleme mit großen Dateien und insbesondere auch mit Dateien, die aus anderen Dingen als reinem Text bestehen. Das liegt an der Art, wie das Programm mit Revisionen umgeht. Mercurial ermittelt von allen Dateien eines „Changesets“ nur die Änderungen dieser Datei gegenüber seiner unmittelbaren Vorgängerversion. Bei Programmcode ist so normalerweise deutlich weniger zu speichern als immer die kompletten Dateien, weshalb ein Repository oft recht klein ist. Was bei Textdateien noch sehr gut geht, ist bei Binärdateien wie z.B. ZIP-Archiven, EXE-Dateien oder Bildern nicht mehr ganz so einfach. Zwar schaffen die Algorithmen dies, aber sie brauchen dafür recht viel Arbeitsspeicher. Davon abgesehen blähen diese großen Dateien das Repository unnötig auf, besonders wenn sie häufiger verändert werden.

Die Extension „largefiles“ fügt dem Speichermechanismus von Mercurial nun ein neues Konzept hinzu, das zum Teil die Eleganz eines DVCS durchbricht, immer die gesamte Historie im lokalen Repository zu haben.

Allerdings steht auf der oben verlinkten Wiki-Seite die nicht unbedeutende Warnung:

As of Mercurial 2.0, this extension still has a number of rough edges.

Ähnliche Artikel:

Schreibe einen Kommentar

Your email address will not be published.

siebzehn − 3 =