GitHub Mirror для локальной машины / сервера - PullRequest
0 голосов
/ 04 сентября 2018

Мы используем несколько проектов (скачанных с github) с github. Так как эти проекты отражаются из github в качестве третьего_партийного проекта в cmake, чистая сборка приводит к повторной загрузке всех проектов. Мы находимся за прокси, и загрузка иногда занимает 1-2 часа (трафик конкурирует с трафиком FB, и мы не можем контролировать).

Я думал о настройке зеркального сервера локально, и вся загрузка проекта происходит с этого сервера. Однако я не хочу менять путь на локальном сервере (т. Е. https://github.com/google/grpc.git должен совпадать с https://github -local-mirror.com / google / grpc.git ).

Я понимаю, что могу настроить локальное репозиторий git и клонировать его из локального репозитория git, а также периодически обновлять локальное репозиторий git из github, однако проблема с путями очень важна.

Есть ли здесь какой-нибудь способ сохранить тот же путь, что и в github? Есть ли что-то, называемое локальным зеркалом, которое позволяет локально отражать проект github?

Все вопросы, которые я читал до сих пор, говорили о зеркале на github, я хочу зеркалирование с github. Поэтому, пожалуйста, подумайте, прежде чем отмечать как дубликат.

1 Ответ

0 голосов
/ 04 сентября 2018

Есть ли здесь какой-нибудь способ сохранить тот же путь, что и в github?

Да: просто клонируйте их на своем зеркале, используя тот же путь, что и на GitHub.

Есть ли что-то, называемое службой локального зеркала, которая позволяет локально отражать проект github?

Нет, но это тривиально. На вашем зеркальном компьютере вы захотите запустить:

git clone --mirror <github-URL>

так, что каждый клон оказывается доступным на зеркале на google/<em>path</em>, когда оно было на path на GitHub. Сделав это, вы можете просто запустить git fetch --prune (или git remote update --prune) в каждом клоне.

Учитывая, что у вас будет небольшой ограниченный список зеркал, вы можете просто иметь (файл, содержащий) список <em>path</em> s на вашем зеркальном компьютере и использовать задание cron для запуска обновлений. Например:

*/5 * * * *   for path in $(cat $HOME/mirrors); do (cd $path && git remote update -p); done

или аналогичный.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...