Много маленьких скриптов, один репозиторий или несколько?

15

Сотрудник и я столкнулись с проблемой, по которой у нас много мнений.

В настоящее время у нас есть git-репозиторий, в котором мы храним все наши cronjobs. Их около 20, и они на самом деле не связаны, за исключением того факта, что они являются небольшими скриптами на python и необходимы для некоторой деятельности. Мы используем fabric.pyфайл для развертывания и requirements.txtфайл для управления требованиями для всех сценариев.

Наша проблема в основном, мы храним все эти скрипты в одном репозитории git или мы должны разделить их на их собственные репозитории? Храня их в одном репозитории, проще развернуть их на одном сервере. Мы можем использовать только один файл cron для всех сценариев.

Однако это кажется неправильным, поскольку 20 cronjobs не связаны между собой логически. Кроме того, при использовании одного requirements.txtфайла для всех сценариев трудно выяснить, каковы зависимости для конкретного сценария, и все они должны использовать одни и те же версии пакетов.

Мы могли бы разделить все скрипты на их собственные репозитории, но это создает 20 различных репозиториев, которые необходимо запомнить и обработать. Большинство этих скриптов не очень большие, и это решение кажется излишним.

С этим связан вопрос: используем ли мы один большой файл crontab для всех cronjobs или отдельный файл для каждого? Если у каждого есть свой собственный, как установка одного crontab позволяет избежать перезаписи других 19? Это также кажется болезненным, так как было бы 20 различных файлов cron для отслеживания.

Короче говоря, наш главный вопрос и проблема заключается в том, должны ли мы держать их всех тесно связанными в один репозиторий, или же мы разделяем их в их собственный репозиторий с их собственными Requirements.txt и fabfile.py? Мы чувствуем, что мы также, вероятно, ищем какое-то действительно простое решение. Есть ли более простой способ решить эту проблему?

Кувшин
источник
Связаны ли эти сценарии cron с другими приложениями или буквально с дампами утилитарных сценариев?
Грег Бургхардт
Я не понимаю, почему наличие их в одном и том же хранилище означало бы, что им нужно было бы использовать одни и те же требования .txt? Каждый из них может иметь разные требования.
Шон Бертон,

Ответы:

16

Если только у вас нет особой причины думать, что каждый из них заслуживает отдельного репо (много ли они вырастут? Вероятно, нет!), Представляется более разумным поместить их всех в один репо и избавить себя от необходимости клонировать все из них от 20 репо.

Хранение каждого в отдельном репо похоже на путь создания проблемы, где проблемы не существует.

Не создавайте дополнительную работу для себя (и других).

ладья
источник
2
Согласовано - до тех пор, пока скрипты имеют правильные имена и дублирование между ними поддерживается на низком уровне (т. Е. В общей библиотеке), поэтому поиск по grep не слишком перегружен, я думаю, что это работает
Дэнни Стейпл
1

Если нет действительно веской причины для такого разделения (производительность; чрезмерные организационные проблемы / проблемы безопасности и т. Д.), То мой инстинкт состоит в том, чтобы хранить исходные документы вместе в одном репозитории.

Разделение систем на отдельные репозитории обычно создает барьеры, которые препятствуют повторному использованию; поскольку повторное использование является практически единственным способом, которым организация должна амортизировать стоимость разработки, все, что мешает повторному использованию, само по себе является плохой вещью.

Уильям Пейн
источник