Diff-Formate

Das Vorgabeformat von Mercurial für das Anzeigen von Änderungen zwischen zwei Versionen einer Datei ist mit dem Unified-Format von GNU diff kompatibel und kann mit GNU patch und vielen anderen Standard-Werkzeugen genutzt werden.

Obwohl das Standarformat oft ausreichend ist, kodiert es nicht die folgenden Informationen:

Mercurial unterstützt auch das erweiterte diff-Format vom Git VCS, das diese Einschränkungen nicht aufweist. Das Git-Format wird nicht standardmäßig erzeugt, da einige weit verbreitete Werkzeuge es noch nicht unterstützen.

Das bedeutet, dass beim Erzeugen von Diffs für ein Mercurial Projektarchiv (z.B. mit 'hg export') auf Operationen wie Kopieren, Verschieben und die anderen oben genannten Dinge achten sollte, da beim Anwenden eines Standard-Diffs auf ein anderes Projektarchiv diese Zusatzinformationen verlorengehen. Mercurials interne Operationen (wie Push und Pull) sind davon nicht betroffen, da sie ein internes, binäres Format zur Kommunikation verwenden.

Um Mercurial dazu zu bringen, das erweiterte Git-Format zu erzeugen, kann man entweder den für viele Befehle verfügbaren Schalter --git verwenden werden oder 'git = True' im Abschnitt [diff] in der Konfigurationsdatei angeben. Wenn Diffs in diesem Format importiert oder mit der mq Erweiterung genutzt werden, muss diese Option nicht angegeben werden.