Дзеркальний github до Gitlab


11

У місцевому gitlab я створив копію проекту nova ( https://github.com/openstack/nova ).

Як я можу підтримувати локальну нову репо в синхронізації з github, оновлюючись, можливо, один раз на годину чи на день?

Я хотів би рішення, подібне до описаного тут для bitnami: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub

(Я використовував Devstack для встановлення Openstack.)

Відповіді:


6

GitLab тепер має цю вбудовану функцію!
Оскільки GitLab EE 8.2 підтримується . Ура!

Витягнення з віддаленого сховища

Ви можете налаштувати сховище для автоматичного оновлення його гілок, тегів та комісій із сховища вище.
...

Створюючи новий проект, ви можете включити дзеркальне відображення сховища, коли ви вирішите імпортувати сховище з "Будь-яке репо за URL". Введіть повну URL-адресу сховища Git, яку потрібно витягнути, і натисніть на прапорець Дзеркальний репозиторій .

Автоматичне дзеркальне відображення GitLab

Для існуючого проекту ви можете налаштувати витяг дзеркала, відвідавши Налаштування проекту ➔ Репозиторій та шукаючи розділ «Витягнути з віддаленого сховища». Поставте прапорець "Дзеркальне сховище" та натисніть Зберегти зміни внизу.
...


1
Їх приклад використовує gitlab, я точно його дотримувався, за винятком того, як замінив цю частину на Github, і оновлення ніколи не закінчується ...
MarcusJ

@MarcusJ Точно те саме, ти знайшов рішення?
MemphiZ

Минув час, як мені довелося це зробити, але я думаю, що я зробив це використання URL-адреси ssh у форматі ssh: //git@gitlab.com: UserName: RepoName.git
MarcusJ

Я щойно зробив цю роботу: перетягнути з github на gitlab легко, якщо репортаж є загальнодоступним, просто вставте цю URL-адресу в налаштування gitlab:, https://github.com/yourGithubUserName/repoName.gitпотім виберіть метод пароля у вікні пошуку та залиште текстове поле пароля порожнім
knocte

4

Якщо вам ніколи не потрібні місцеві комісії, спрацює наступний рецепт:

Клоніруйте репо з --mirror:

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

Потім за допомогою cronjob ви робите це для щогодинного оновлення:

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

В --mirrorвстановлює refspecs таким чином , щоб наступні вибірки оновлять всі локальні реф, так що вам не потрібно , щоб об'єднати ці зміни в. Звичайно , це не означає , що коммітов підштовхнули до цього репо губляться.


Це не здається, що це відповідає на питання, яке полягає в тому, щоб отримати дзеркало в GitLab.
Кен Вільямс



0

Це можна зробити, використовуючи завдання cron .

У своєму терміналі crontab -e(щоб відредагувати кронтаб), додайте новий рядок внизу із наступним.

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

Він буде працювати клоном щодня опівночі.


Я сподіваюся, що це поступові оновлення. не потрібно завантажувати все заново.
користувач186107
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.