В системах контроля версий репозиторий представляет собой структуру данных, в которой хранятся метаданные для набора файлов или структуры каталогов . [1] В зависимости от того, является ли используемая система контроля версий распределенной, например Git или Mercurial , или централизованной, например Subversion , CVS или Perforce , весь набор информации в репозитории может дублироваться в системе каждого пользователя или поддерживаться. на одном сервере . [2] Некоторые из метаданных, содержащихся в репозитории, включают, среди прочего, историческую запись изменений в репозитории, набор объектов фиксации и набор ссылок на объекты фиксации, называемые заголовками .
Основная цель репозитория — хранить набор файлов, а также историю изменений, внесенных в эти файлы. [3] Однако то, как каждая система контроля версий обрабатывает сохранение этих изменений, сильно различается. Например, в прошлом Subversion полагалась на экземпляр базы данных, но с тех пор перешла на сохранение своих изменений непосредственно в файловой системе. [4] Эти различия в методах хранения обычно приводят к различному использованию контроля версий разными группами в зависимости от их потребностей. [5]
В разработке программного обеспечения система контроля версий используется для отслеживания версий набора файлов, обычно для того, чтобы позволить нескольким разработчикам совместно работать над проектом. Репозиторий отслеживает файлы проекта, которые представлены в виде графика .
Распределенная система контроля версий состоит из центрального и отраслевых репозиториев . На сервере существует центральный репозиторий. Чтобы внести в него изменения, разработчик сначала работает с репозиторием ветки и приступает к фиксации изменений в нем.
Code Forge — это веб-интерфейс системы контроля версий. Пользователь обычно может просматривать репозитории и входящие в них файлы на самой странице.
Хотя форжи в основном используются для выполнения операций по контролю версий, некоторые форжи позволяют пользователям размещать статические веб-страницы , загружая их исходный код (например, HTML и JavaScript , но не PHP ) в репозиторий. Обычно это делается для предоставления документации или целевой страницы программного проекта.
Использование репозиториев в качестве места для загрузки веб-документов позволяет интегрировать контроль версий, а также обеспечивает быструю итерацию, поскольку изменения передаются через систему контроля версий вместо необходимости загрузки файла через такой протокол, как FTP . [6]
Примеры такого рода сервисов включают GitHub Pages и GitLab Pages .