В локальном gitlab я создал копию проекта nova (https://github.com/openstack/nova).
Как мне синхронизировать локальное репозиторий nova с github, обновляя, возможно, раз в час или в день?
Хотелось бы решения, аналогичного описанному здесь для битнами: http://wiki.bitnami.com/Applications/BitNami_GitLab#Keeping_in_sync_with_the_GitLab_repository_at_GitHub
(Я использовал Devstack для установки Openstack.)
GitLab теперь эта функция встроена!
Начиная с GitLab EE 8.2 это поддерживается. Ура!
Извлечение из удаленного репозитория
Вы можете настроить репозиторий для автоматического обновления его веток, тегов и коммитов из вышестоящего репозитория.
...При создании нового проекта вы можете включить зеркальное отображение репозитория, выбрав импорт репозитория из «Любого репозитория по URL». Введите полный URL-адрес репозитория Git, из которого нужно извлечь, и щелкните значок Зеркало репозитория флажок.
(источник: gitlab.com)
>
Для существующего проекта вы можете настроить вытягивание зеркала, посетив свой проект Настройки ➔ Репозиторий и поиск раздела «Извлечь из удаленного репозитория». Установите флажок "Зеркало репозитория" и нажмите Сохранить изменения внизу.
...
если ты никогда нужны локальные коммиты, подойдет следующий рецепт:
Клонировать репо с помощью --mirror
:
git clone --mirror https://github.com/openstack/nova.git
Затем в cronjob вы делаете это для ежечасного обновления:
0 * * * * cd /path/to/nova.git && git fetch
В --mirror
устанавливает спецификации таким образом, что последующие выборки будут обновлять все локальные ссылки, поэтому вам не нужно объединять изменения. Конечно, это означает, что коммиты, помещенные в это репо, теряются.
Я написал проект с намерением добавить удаленные зеркала в GitLab. Вы можете проверить это здесь...
Создайте задание cron для обновления репо
Вы можете сделать это, используя cron вакансии.
В вашем типе терминала crontab -e
(чтобы отредактировать ваш crontab) и добавьте новую строку внизу следующего содержания.
* 0 * * * git clone ssh://username@hostname:port/repo
Он будет запускать клон каждый день в полночь.