Ich bin kürzlich von gitolite zu gitlab und dem offiziellen Rake-Task gitlab:import:repos
migriert hat bei mir funktioniert. Ich verwende Gitlab 6.1.0 (82f3446). Folgendes habe ich getan:
-
rsync
Bare Repos von gitolite bisrepositories/{group}/
. Achten Sie darauf,{repository}
zu ersetzen durch den Namen des Gitolite-Repos und ändern Sie den Hostnamen Ihres Gitlab-Servers.rsync -rth --progress repositories/{repository}.git \ [email protected]:/home/git/repositories/{group}/
Hier,
{group}
ist der Name der Benutzergruppe, zu der das Repository hinzugefügt werden soll. Wenn Sie keine bestimmte Gruppe haben, wählen Sieroot
als Gruppenname. -
Berechtigungen korrigieren – nur erforderlich, wenn
rsync
Benutzer ist nichtgit
:sudo chown -R git:git repositories/{group}/
-
cd ~/gitlab
-
Führen Sie die Rake-Aufgabe aus, um alle neuen Repositories zu importieren:
bundle exec rake gitlab:import:repos RAILS_ENV=production
Wenn Sie sich jetzt als Administrator anmelden, finden Sie das neue Projekt hinzugefügt.
Weitere Informationen finden Sie unter "Bare-Repositories in GitLab-Projektinstanz importieren" unter http://{your-gitlab-server}/help/raketasks
.
In Ihrem Fall können Sie sich bei Ihrem alten TKL-System anmelden und alle Bare-Repos mit der neuen Instanz synchronisieren, gefolgt von einem Import.
Eine Möglichkeit wäre:
- Klonen Sie das alte Repo von Gitlab auf eine Entwicklungsmaschine.
- Erstellen Sie ein leeres Repo auf dem neuen Gitlab.
- Fügen Sie das neue Repo als Remote auf dem Entwicklungscomputer hinzu.
- Schieben Sie alles zurück in das neue Repo.
- Entfernen Sie das alte Repo aus der Remote-Repos-Liste.
Um ein Remote namens newRepo zu erstellen, tun Sie:git remote add newRepo gitlab.localhost.com:User/newRepo.git
(Ersetzen Sie die URL am Ende durch die für Ihr Repo)
Ich habe es praktisch auf folgende Weise gemacht, nachdem ich ChrisA Antwort gelesen hatte, was mir ein wenig Kopfschmerzen darüber bereitete, wie man es praktisch macht. Das Beispiel kopiert ein Repo von github nach gitlab, um Quelle und Ziel etwas klarer zu machen.
-
Klonen Sie das alte Repo von Github auf einen Entwicklungscomputer (der ein reines Repo erstellt):
$ git clone --mirror [email protected]:me/myrepo.git
-
Erstellen Sie ein leeres Repo auf dem neuen Gitlab.
-
Fügen Sie das neue Repo als Remote auf dem Entwicklungscomputer hinzu.
$ cd myrepo.git $ git remote add newRepo [email protected]:me/myrepo.git
-
Schieben Sie alles zurück in das neue Repo.
$ git push --mirror newRepo
Das ist es.
Auf diese Weise wurden alle Zweige und Tags an das neue Ziel kopiert.
Sie können das geklonte Bare-Repository jetzt von Ihrem Entwicklungscomputer entfernen.