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:
-
rsync
holé 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 \ [email protected]:/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, zvolteroot
jako název skupiny. -
Opravit oprávnění – nutné pouze v případě
rsync
už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 [email protected]: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 [email protected]: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.