Github auf Gitlab spiegeln


11

In einem lokalen Gitlab habe ich eine Kopie des Projekts nova erstellt ( https://github.com/openstack/nova ).

Wie halte ich das lokale Nova Repo mit Github synchron und aktualisiere es möglicherweise einmal pro Stunde oder pro Tag?

Ich möchte eine ähnliche Lösung wie hier für bitnami beschrieben: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Ich habe Devstack verwendet, um Openstack zu installieren.)

Antworten:


6

In GitLab ist diese Funktion jetzt integriert!
Seit GitLab EE 8.2 wird es unterstützt . Hurra!

Abrufen aus einem Remote-Repository

Sie können ein Repository so einrichten, dass seine Zweige, Tags und Commits automatisch von einem Upstream-Repository aktualisiert werden.
...

Wenn Sie ein neues Projekt erstellen, können Sie die Repository-Spiegelung aktivieren, wenn Sie das Repository aus "Beliebiges Repo nach URL" importieren. Geben Sie die vollständige URL des Git-Repositorys ein, aus dem Sie abrufen möchten, und klicken Sie auf das Kontrollkästchen Spiegel-Repository .

Automatische Spiegelung von GitLab

Für ein vorhandenes Projekt können Sie das Ziehen von Spiegeln einrichten, indem Sie die Einstellungen ➔ Repository Ihres Projekts aufrufen und nach dem Abschnitt "Aus einem Remote-Repository ziehen" suchen. Aktivieren Sie das Kontrollkästchen "Repository spiegeln" und klicken Sie unten auf Änderungen speichern .
...


1
Ihr Beispiel verwendet Gitlab, ich habe es genau befolgt, außer dass dieser Teil durch Github ersetzt wurde, und die Aktualisierung endet nie ...
MarcusJ

@MarcusJ Genau das gleiche hier, haben Sie eine Lösung gefunden?
MemphiZ

Es ist schon eine Weile her, dass ich das tun musste, aber ich glaube, ich habe die ssh-URL im Format ssh verwendet: //git@gitlab.com: Benutzername: RepoName.git
MarcusJ

Ich habe gerade diese Arbeit gemacht, das Ziehen von Github zu Gitlab ist einfach, wenn Ihr Repo öffentlich ist. Fügen Sie diese URL einfach in die Gitlab-Einstellungen ein: https://github.com/yourGithubUserName/repoName.gitWählen Sie dann die Passwortmethode in der Combobox und lassen Sie das Passwort-Textfeld leer
knocte

4

Wenn Sie niemals lokale Commits benötigen, funktioniert das folgende Rezept:

Klonen Sie das Repo mit --mirror:

git clone --mirror https://github.com/openstack/nova.git

In einem Cronjob tun Sie dies dann für ein stündliches Update:

0 * * * * cd /path/to/nova.git && git fetch

Das --mirrorrichtet die Refspecs so ein, dass nachfolgende Abrufe alle lokalen Refs aktualisieren, sodass Sie die Änderungen in nicht zusammenführen müssen. Dies bedeutet natürlich, dass Commits, die an dieses Repo gesendet werden, verloren gehen.


Dies scheint nicht die Frage zu beantworten, einen Spiegel in GitLab zu bekommen.
Ken Williams


0

Erstellen Sie einen Cron-Job, um das Repo zu aktualisieren


Wie in gitlab einstellen?
user186107

2
Aktualisieren Sie Ihre Frage mit den Details, die Sie benötigen, was Sie versucht haben und was das genaue Problem ist.
Drew Khoury

0

Sie können dies mit Cron-Jobs tun .

crontab -eGeben Sie in Ihrem Terminal ein (um Ihre Crontab zu bearbeiten) und fügen Sie unten eine neue Zeile hinzu.

* 0 * * * git clone ssh://username@hostname:port/repo

Es wird jeden Tag um Mitternacht einen Klon ausführen.


Ich hoffe es sind inkrementelle Updates. Sie müssen nicht alle erneut herunterladen.
user186107
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.