Что должна решать система контроля версий, хранения spec файлов, патчей и тарболлов:
- возможность работать только с одним модулем
- низкий трафик при хранении и передаче изменений для бинарных файлов (архивов с исходниками, иконки и т.д.)
- отслеживание изменений по электронной почте (для всего репозитария, для модулей)
- возможность хранения исходников в распакованном виде
- ограничение доступа к модулям (по мантейнерам, team и т.д.). :
- правила «по умолчанию»
- возможность мантейнеру управлять правилами доступа к своему пакету
- возможность администратору устанавливать правила доступа к определенному пакету
- анонимный доступ
- работа в чруте
- WEB интерфейс
- возможность создания модулей без анонимного доступа
- возможность использования репозитария при отсутствующем соединении с центральным сервером (локальная копия)
- простота сборки пакетов из репозитария в системе и hasher
- ведение веток (типа branch-3.0 и Sisyphus-current)
- поддержка тэгов
- надежность (возможность создания бэкапов и восстановления из них)
- популярность – используемые инструменты должны быть в достаточной степени распространены, что бы снизить риск утраты mainstream'а и уменьшить стоимость сопровождения
- отправка событий на сборку – по команде мантейнера (например – установка определённого вида тэга или property) должно отправляться письмо на сборочные сервера, с целью постановки пакета в очередь на сборку. Сборка должна происходить без участия человека, полностью автоматически. Результаты сборки (логи) должны отправляться мантейнеру (группе мантейнеров) по электронной почте и выкладываться в общедоступное место.
Это все в общих чертах.. что должно быть более подробно – предмет дальнейшей проработки.
Видимые кандидаты:
subversion
GNU arch