Migrace do Gitu: 3. díl - Mercurial

Po zvládnutí migrace z CVS a SVN se v posledním dílu seriálu zaměříme na migraci z verzovacího systému Mercurial. Z pohledu migrací z CVS a SVN je postup znatelně jednodušší.

Pro migraci lze použít nástroj hg-fast-export napsaný v Pythonu. Hg-fast-export využívá příkaz git fast-import. Nástroj není potřeba instalovat, stačí pouze přímo stáhnout skripty nebo naklonovot celý git repositář.

K migraci je potřeba mít nainstalovaný Mercurial ve vhodné verzi (úspěšně prověřeno na verzi 2.2).

Postup vychází z následujícího popisu. Otestováno na Mercurial ver. 2.2.2, Python ver. 2.6.6, Git ver. 1.8.0.1.

První krok

Naklonovat vzdálený Mercurial repositář do lokálního repositáře, protože hg-fast-export neumí pracovat se vzdálenými repositáři.


$ hg clone url-mercurial-repositare

Druhý krok

Vytvořit adresář, ve kterém bude umístěn zmigrovaný repositář. V adresáři je nutné inicializovat prázdný git repositář.

$ git init

Třetí krok

Skriptem v adresáři s prázdným git repositářem spustit vlastní migraci.


$ cd cesta-k-prazdnemu-git-repositari
$ hg-fast-export.sh -r cesta-k-lokalnimu-mercurial-repositari

Pokud se po migraci nachází v adresáři pouze podadresář .git, můžete provést checkout větve master.


$ git checkout master

Čtvrtý krok

Zkontrolovat soubor .gitignore a porovnat s .hgignore. Hg-fast-export se .gitignore pokusí vytvořit. Výsledek je však dobré ověřit.

Migrace do Gitu - seriál

Zdroje

Článek obsahuje 1 komentář

  • centi

    1
    Skúšal som to na Windows a narazil som na problém:

    Spomínaný python skript vyžaduje nejaký "mercurial" modul. Nakoniec mi pomohol tento článok: http://stackoverflow.com/questions/1389307/convert-a-mercurial-repository-to-git, konkrétne táto odpoveď: http://stackoverflow.com/a/17060549