Nedávno jsem migroval z gitolite na gitlab a oficiální úlohu rake gitlab:import:repos pracoval pro mě. Používám gitlab 6.1.0 (82f3446). Zde je to, co jsem udělal:
-
rsyncholé repozitáře z gitolite narepositories/{group}/. Nezapomeňte nahradit{repository}s názvem gitolite repo a změňte název hostitele vašeho gitlab serveru.rsync -rth --progress repositories/{repository}.git \ example@unixlinux.online:/home/git/repositories/{group}/Zde
{group}je název skupiny uživatelů, do které chcete úložiště přidat. Pokud žádnou konkrétní skupinu nemáte, zvolterootjako název skupiny. -
Opravit oprávnění – nutné pouze v případě
rsyncuživatel nenígit:sudo chown -R git:git repositories/{group}/ -
cd ~/gitlab -
Spusťte úlohu rake pro import všech nových repozitářů:
bundle exec rake gitlab:import:repos RAILS_ENV=production
Nyní, když se přihlásíte jako správce, najdete nový projekt přidaný.
Další informace naleznete v části „Import holých repozitářů do instance projektu GitLab“ pod http://{your-gitlab-server}/help/raketasks .
Ve vašem případě se můžete přihlásit ke svému starému systému TKL a synchronizovat všechna holá úložiště do nové instance a poté importovat.
Jednou z možností by bylo:
- Klonujte staré repo z gitlabu na vývojářský počítač.
- Vytvořte prázdné repo v novém gitlabu.
- Přidejte nové úložiště jako vzdálené na vývojářském počítači.
- Přesuňte vše zpět do nového úložiště.
- Odeberte staré úložiště ze seznamu vzdálených úložišť.
Chcete-li vytvořit dálkové ovládání s názvem newRepo, postupujte takto:git remote add newRepo gitlab.localhost.com:User/newRepo.git (adresu URL na konci nahraďte adresou svého repo)
Udělal jsem to prakticky následujícím způsobem po přečtení odpovědi ChrisA, což mě trochu bolelo, jak to udělat prakticky. Příklad zkopíruje repo z githubu do gitlabu, aby byl zdroj a cíl trochu jasnější.
-
Naklonujte staré repo z githubu do dev stroje (který vytvoří holé repo):
$ git clone --mirror example@unixlinux.online:me/myrepo.git -
Vytvořte prázdné repo na novém gitlabu.
-
Přidejte nové úložiště jako vzdálené na vývojářském počítači.
$ cd myrepo.git $ git remote add newRepo example@unixlinux.online:me/myrepo.git -
Přesuňte vše zpět do nového úložiště.
$ git push --mirror newRepo
To je ono.
Tímto způsobem zkopíroval všechny větve a značky do nového cíle.
Nyní můžete odstranit klonované holé repo z vašeho dev počítače.