Одна вещь, которую вы можете сделать, - это извлечь основную часть вашего проекта в отдельный управляемый репозиторий. Давайте назовем это вашим coreApp
. Он будет содержать основные функциональные возможности, функции и архитектуру, которые необходимы для всей последующей работы, которую вы будете выполнять. Учитывая, что возможно даже разделить ваш проект на модули!
Тогда для каждого конкретного c проекта (копии для разных школ) будет использоваться ваш coreApp
в качестве зависимости и построим поверх него, реализуя конкретные и специальные c drawablase + необходимые пакеты.
Плюсы этого подхода в том, что у вас есть четкое логическое разделение между каждым проектом , История git будет указана c, подробная и точная. Вы будете знать, когда вам нужно обновить ваш основной модуль и когда вам нужно работать над каждым конкретным c проектом. Вы также получаете преимущество обработки меньших объектов таким способом. Поскольку каждый проект представляет собой отдельное приложение, вы переходите от создания монолита к более модульной системе. Еще одним положительным моментом является то, что у вас есть небольшое количество дублирования кода. Все, что вам нужно сделать, это просто реализовать конкретные c и конкретные функции для каждой школы, остальные остаются неизменными.
Минусы в том, что будет сложнее управлять всеми этими проекты, потому что теперь у вас нет одного одного проекта, а есть несколько, где один является зависимостью от другого. Другой негативный аспект этого заключается в том, что если это произойдет, и это очень зависит от вашей ситуации, если вы регулярно обновляете свой coreApp
, тогда вам может понадобиться для обновления всего последующего проекта, так как ваше ядро получило новая версия. Это зависит от того, насколько вы активны в обслуживании. И последнее, , но не в последнюю очередь минус в том, что может быть довольно сложно логически отделить ваше ядро от остальных ваших приложений ...
Также я лично постараюсь отойти от управление всем в одном репо git, особенно если функции будут постоянно перезаписываться для других целей, потому что все быстро выйдет из-под контроля. Вы можете потерять логическую последовательность разработки вашего проекта, и управление историей может стать трудным.