Я хотел бы построить надежный путь для разработки программного обеспечения. Это означает, что каждое изменение кода должно быть подписано автором и одним рецензентом, прежде чем оно будет принято. Эти подписи для изменений должны быть проверены во время выпуска, или должны быть какие-то другие средства, чтобы убедиться, что репозиторий не был подделан, или должны быть добавлены дополнительные изменения.
Система контроля версий, которую я собираюсь использовать для этого, - это git, но возможны и другие варианты. Подписание может осуществляться через сертификаты GnuPG или SSL.
Я думаю, что рабочий процесс будет примерно таким:
- Текущая проверенная магистраль разветвлена
- Изменения вносятся в ветку одним или несколькими разработчиками.
- Один или несколько разработчиков подписывают изменения, внесенные веткой
- Рецензент просматривает и тестирует изменения
- Рецензент подписывает изменения, внесенные веткой
- Филиал «объединен» с текущим проверенным стволом
Слияние не должно быть надежным, например, непроверенные изменения должны быть не объединяемыми в ствол - просто перед выпуском должен быть способ проверить, есть ли какие-либо непроверенные (неподписанные) изменения в стволе. И вообще, вмешательство не нужно предотвращать, а только обнаруживать.
Я хотел бы получить краткое руководство о том, как это настроить и как выполняется каждая операция. Как только я получу несколько указателей, я сам смогу разобраться в деталях.
Кроме того, я уже знаю о git tag -s технически, но не знаю, как применить его к этой конкретной проблеме.