TTATPuOT
@TTATPuOT
https://code.patriotovsky.ru/

Как вести два одинаковых проекта, имя возможность дорабатывать их вместе и по отдельности?

Здравствуйте!
Есть ситуация: есть текущий проект в git. Он работает и всё отлично. В репозитории git есть только одна ветка - она же релизная, без dev веток.
Сейчас появилась необходимость создать копию этого проекта для другой компании. Проект будет немного дописан под эту компанию, но в целом, кодовая база на 99% останется изначальная. Но в будущем, планируется улучшение как только изначального проекта, так и улучшения копии, а также общие улучшения их вместе.

Каким образом можно удобно вести работу над двумя проектами параллельно, имея возможность удобно дорабатывать оба проекта и каждый из них по отдельности?

Мои варианты:
1) Использовать два независимых друг от друга репозитория. Но здесь стоит вопрос в том, что неудобно будет вносить правки в оба проекта.
2) Использовать разные ветки внутри одного репозитория или подмодули.
3) Доработать текущий проект так, чтобы было 1 общее ядро, которое будет дорабатываться отдельно, а для каждой компании создать свой репозитории, где будут хранится "плагины" к этому ядру. Но в этом случае придётся значительно переписать текущий код.
Звучит лучше всего третий вариант, но на его реализацию потребуется достаточно много времени, чтобы чётко определить "границу" между плагином и ядром. Ну и переписывать так же нужно будет очень много.
  • Вопрос задан
  • 215 просмотров
Решения вопроса 2
Alex_Wells
@Alex_Wells
PHP/TS/Kotlin developer
Два репозитория. В обоих добавляете еще один origin - на другой проект.

Если нужно внести изменения в оба проекта, то сначала делаете это в одном, потом в другом проекте мерджите изменения с другого origin'а.

Писать код нужно максимально независимым. Используйте модульность, для модулей внешнее API и event/listeners для общения наружу. В местах где логика различается - по максимуму полиморфизм, и.е. избегайте мерджов всеми силами.

Второй вариант говно. Третий вариант слишком сложный.
Ответ написан
Robur
@Robur
Знаю больше чем это необходимо
1) вы себя проклянете, если правок будет хоть немного больше парочки.
2) это тот же 1) только сбоку. С точки зрения гита - мало разницы между втрой веткой в том же репо или такой-же веткой в другом репо. команды на мерж кода будут разные, все остальное - одно и то же.

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

3) правильный вариант. Стоит ли он потраченных усилий - это уж только вы сами можете оценить.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы