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