Mirror github to Gitlab

11

W lokalnym gitlabie stworzyłem kopię projektu nova ( https://github.com/openstack/nova ).

Jak utrzymywać synchronizację lokalnego repozytorium nova z githubem, aktualizując może raz na godzinę lub dziennie?

Chciałbym rozwiązania podobnego do opisanego tutaj dla bitnami: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Użyłem Devstack, aby zainstalować Openstack.)

użytkownik186107
źródło

Odpowiedzi:

6

GitLab ma teraz tę funkcję wbudowaną!
Od GitLab EE 8.2 jest obsługiwany . Brawo!

Pobieranie ze zdalnego repozytorium

Możesz skonfigurować repozytorium tak, aby jego gałęzie, znaczniki i zatwierdzenia były automatycznie aktualizowane z repozytorium nadrzędnego.
...

Podczas tworzenia nowego projektu możesz włączyć dublowanie repozytorium, jeśli zdecydujesz się zaimportować repozytorium z „Dowolnego repozytorium według adresu URL”. Wprowadź pełny adres URL repozytorium Git, z którego chcesz pobrać, i kliknij pole wyboru Repozytorium kopii lustrzanej .

Automatyczne dublowanie GitLab

W przypadku istniejącego projektu możesz skonfigurować pobieranie kopii lustrzanych, odwiedzając Ustawienia projektu ➔ Repozytorium i wyszukując sekcję „Wyciągnij ze zdalnego repozytorium”. Zaznacz pole „Repozytorium kopii lustrzanych” i kliknij Zapisz zmiany u dołu.
...

arieljannai
źródło
1
W ich przykładzie użyto gitlaba, podążyłem za nim dokładnie, z tą różnicą, że zastąpiłem tę część Githubem, a aktualizacja nigdy się nie kończy ...
MarcusJ
@MarcusJ Dokładnie tak samo tutaj, znalazłeś rozwiązanie?
MemphiZ,
Minęło trochę czasu, odkąd musiałem to zrobić, ale myślę, że zrobiłem to, używając ssh url w formacie ssh: //[email protected]: UserName: RepoName.git
MarcusJ
Właśnie wykonałem tę pracę, przejście z github do gitlab jest łatwe, jeśli twoje repo jest publiczne, po prostu wklej ten adres URL w ustawieniach gitlab:, https://github.com/yourGithubUserName/repoName.gitnastępnie wybierz metodę hasła w polu combobox i pozostaw pole tekstowe hasła puste
knocte
4

Jeśli nigdy nie potrzebujesz lokalnych zatwierdzeń, zadziała następujący przepis:

Sklonuj repozytorium za pomocą --mirror:

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

Następnie w cronjob robisz to dla cogodzinnej aktualizacji:

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

Do --mirrorustawia refspecs w taki sposób, że kolejne pobierające aktualizuje wszystkie lokalne pozycje literatury, dzięki czemu nie trzeba scalić zmiany w. Oczywiście to nie znaczy, że commity popychane do tego repo są tracone.

Dennis Kaarsemaker
źródło
To nie wydaje się, że odpowiada na pytanie, jak uzyskać kopię lustrzaną w GitLab.
Ken Williams
0

Utwórz zadanie CRON, aby zaktualizować repozytorium

Drew Khoury
źródło
Jak ustawić w gitlab?
user186107,
2
Zaktualizuj swoje pytanie, podając wymagane informacje, wypróbowane metody i dokładny problem.
Drew Khoury,
0

Możesz to zrobić za pomocą zadań CRON .

W swoim terminalu wpisz crontab -e(aby edytować crontab) i dodaj nowy wiersz na dole z następującymi.

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

Będzie uruchamiał klon codziennie o północy.

Sohan
źródło
Mam nadzieję, że są to aktualizacje przyrostowe. nie trzeba ponownie pobierać wszystkich.
user186107,