Prof. Dr. Detlef Kreuz

Von Mercurial nach Fossil konvertieren

Neue Konzepte ausprobieren macht Spaß. Fossil ist eine interessante Mischung aus verteiltem Versionskontrollsystem, Wiki und Issue-Tracking-System. Für Eingeweihte: ein Trac verschmolzen mit Mercurial. Der große Vorteil: es wird kein zentraler Server benötigt. Der kleine Vorteil: Fossil besteht aus einer einzigen Datei, die Repositories ebenfalls.

Leider unterstützt Fossil nicht den Import von Mercurial-Repositories, noch Mercurial den Export in Fossil-Repositories. Was tun? Den Umweg über Git nehmen. Zwei Seiten helfen weiter:

Im ersten Schritt ist das Tool fast-export zu installieren:

cd /path/for/scripts
git clone git://repo.or.cz/fast-export.git

(Ich setze einmal voraus, dass auf dem System Git installiert ist ...)

Nun steht dem Konvertierungsvorgang nichts im Wege:

git init /tmp/git-repo
pushd /tmp/git-repo
/path/for/scripts/fast-export/hg-fast-export.sh -r /path/to/mercurial-repo
git fast-export --all | fossil import --git /path/to/fossil-repo
popd
rm -rf /tmp/git-repo

Hmm, das wäre ja ein Kandidat für ein eigenes Shell-Skript ;-).

Übrigens, erste Experimente zeigen, dass Fossil die Daten am besten komprimiert. Danach kommt Git und zum Schluss Mercurial. Aber alles innerhalb von ca. 20%, also nichts weltbewegendes.

Update 12.10.15: ich habe endlich einmal beschrieben, weshalb ich bevorzugt Fossil einsetze.