Migrieren repos zwischen Instanzen von Gitlab
Aufgrund meiner alten installation von Gitlab zu schwierig zu aktualisieren (Thread TKL-support-Foren: http://www.turnkeylinux.org/forum/support/20120913/upgrading-gitlab ), heruntergeladen habe ich das aktuelle TKL Gitlab-Distribution, und folgte Gitlabs standard-upgrade-Pfad, so dass ich nun voll aufgerüstet Gitlab 6.1 installation läuft mit TKLBAM und all das gute Zeug. So weit So gut.
Aber, es stellt sich heraus, dass unsere alten version von gitlab nicht geben, HTTP-urls zu den repos, so dass bedeutet, dass ich nicht verwenden können, den "Importieren Sie vorhandene repository" - Funktion in Gitlab 6.1
Ich weiß, ich kann einfach kopieren Sie die alten Git-repositories von der alten VM auf die neue, aber wie kann ich diese Repositorys sichtbar in Gitlab auf die neue VM?
InformationsquelleAutor Bjørn Otto Vasbotten | 2013-10-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine option wäre:
Zum erstellen einer remote-namens newRepo, do:
git remote add newRepo gitlab.localhost.com:User/newRepo.git
(ersetzen Sie die url am Ende mit einem für Ihre repo)Ja, es sollte. Sie können überprüfen, welche Filialen Sie haben, nachdem der Klon von laufen
git branch -a
. Wenn es verpassten, läuftgit fetch --all
sollten Sie abzurufen.Ok, das ist die nette, wenn Sie einem repo. Aber was, wenn Sie 50+ repo, gruppiert, mit 30+ Benutzer mit unterschiedlichen Zugriffsrechten für Gruppen/repos? Sind Sie dann oben, DASS die creek ohne ein Paddel?
InformationsquelleAutor ChrisA
Ich habe vor kurzem migriert von gitolite auf gitlab und die offizielle rake-task
gitlab:import:repos
für mich gearbeitet. Ich bin mit gitlab 6.1.0 (82f3446). Hier ist was ich getan habe:rsync
bare-repos von gitolite zurepositories/{group}/
. Stellen Sie sicher, zu ersetzen{repository}
mit dem Namen des repo gitolite, und ändern Sie den Hostnamen des gitlab-server.Hier
{group}
ist der name der Benutzergruppe, der Sie das repository Hinzugefügt werden. Wenn Sie nicht eine bestimmte Gruppe, wählen Sieroot
wie der name der Gruppe.Fix Berechtigungen – nur notwendig, wenn die
rsync
Benutzer ist nichtgit
:cd ~/gitlab
Ausführen der rake-task zum importieren aller neuen repositories:
Nun, wenn Sie melden Sie sich als Administrator finden Sie das neue Projekt Hinzugefügt.
Weitere Informationen finden Sie unter "Importieren von bare-Repositorys in GitLab-Projekt-Instanz" unter
http://{your-gitlab-server}/help/raketasks
.In Ihrem Fall, Sie können sich auf Ihrem alten system TKL und rsync alle bare-repos auf die neue Instanz, gefolgt von einem import.
Sind Sie sicher, dass Sie in das Verzeichnis
/home/git/gitlab
?Wow!!! Haben nicht gefühlt, blöd in eine Weile. Danke.
Dies scheitert bei mir mit einer frischen Installation von v6.5.1 auf CentOS 6.5... ich kopiere ein bare-repo auf /home/git/repositories/Benutzername/repo.git, aber der rake sagt mir "Fehler beim Versuch, die Gruppe zu schaffen Benutzername". Es erstellt dann ein leeres repo in /home/git/repositories/root (Administrator ' s-namespace). Siehe github.com/gitlabhq/gitlabhq/issues/3693 und github.com/gitlabhq/gitlabhq/issues/4137
InformationsquelleAutor redhot
Ich habe es praktisch auf folgende Weise nach dem Lesen ChrisA Antwort, die mir ein wenig Kopfzerbrechen darüber, wie es zu tun praktisch. Das Beispiel kopiert ein repo von github, gitlab, um Quelle und Ziel ein wenig klarer.
Klonen die alte repo von github auf eine dev-Maschine (die erstellt ein bare-repo):
Erstellen Sie ein leeres repo auf die neue gitlab.
Fügen Sie das neue Repository als remote auf der dev-Maschine.
Schieben wieder alles auf das neue repo.
Das ist es.
Diese Weise kopiert alle Zweige und tags, um das neue Ziel.
Jetzt können Sie den geklonten bare-repo von deinem dev-Maschine.
InformationsquelleAutor tvw
Wenn Ihr Gitlab ist >= 8.9, dann können Sie export/import zu migrieren repos.
InformationsquelleAutor keypress