Я пытаюсь разработать правила для небольшой группы людей, работающих над программным обеспечением, используемым для анализа данных. Важно иметь средство для воспроизведения выполнения кода в какой-то момент в прошлом, то есть для возврата в состояние в прошлом (что должно разрешать управление версиями). В прошлом это было возможно для нас с SVN. Затем мы можем пометить результаты нашего анализа данных номером версии SVN, использованным для этого прогона.
Есть истории о том, как из-за ветвления, слияния и перебазирования истории теряются / становятся недоступными / кошмаром, чтобы добраться и т. Д. В то же время, легкая обработка ветвления для экспериментальной разработки функций что заставляет нас задуматься о переходе с SVN на GIT.
Итак: Какие правила мы должны соблюдать, чтобы гарантировать, что мы легко и всегда сможем получить состояние кода, который был запущен для данного анализа? Использовать только основную ветку для анализов? Если да, то какие операции должны быть запрещены в основной ветке?
РЕДАКТИРОВАТЬ: два хороших предложения объясняются ниже: Пометка важных коммитов сделает анализ прозрачным и воспроизводимым (antlersoft). Это не требует никаких новых правил, кроме как оставить теги в покое. Этот рабочий процесс тегирования не требует правил для перебазирования и слияния. Предложение Тома Андерсона полезно в том смысле, что центральное хранилище, в котором должен размещаться весь код, к которому прикреплены теги (это будет соглашение / правило), могло бы предоставить другим членам доступ к этим частям кода.