Страницы

Поиск по вопросам

вторник, 23 октября 2018 г.

Принцип работы GitHub и ему подобных

Стало интересно, каким образом хранятся проекты на серверах и как происходит с ними работа. Тут описано как настроить свой сервер для хранения git проектов. Может ли быть, что по подобной схеме устроены сервисы на подобии GitHub?
Надеюсь у кого то есть информация или ссылки по этому вопросу.


Ответ

По ссылке на сайт гита приведено достаточно информации.
Подобные сайты обычно:
хранят bare версии репозитория (то есть, без рабочего каталога, только содержимое .git каталога. git поддерживает это "из коробки"). Хранят обычно прямо в файловой системе. предоставляют интерфейс пользователя, что бы просматривать репозиторий, проводить действия с ним. Для этого используется:
либо библиотека libgit2 (у нее есть обвязки к разным языкам) либо консольные команды (у гита даже есть специальный ключ у многих команд --porcelain, который делает вывод простым и предсказуемым для парсинга, с версионированем) либо прямой доступ к файлам гита (они просты, так что в большинстве случаев все легко, но возможны подводные камни) или комбинируют указанные способы дают различные "фишки":
просмотр diff мердж статистика CI решают проблему разделения прав
управления ключами и пользователями обработка запросов от гита на проверку ключа (на самом деле не гита, а ssh клиента, настроенного специальным образом или http)

Комментариев нет:

Отправить комментарий