0

Все привет!

Столкнулся с трудностью выбора подхода для ведения нескольких проектов на одном репозитарии.

Дано

  • имеем некоторое ядро кода, общее для всех проектов
  • проекты все разные и независимые, но ядро используют одно
  • разработка ведётся параллельно как базового ядра, так и проектов
  • ядро выступает как master

Желаемый результат

  • транслировать изменения ядра во все дочерние проекты
  • изменения в дочерних проектах должны быть изолированными
  • хранить все изменения в Git
  • проекты и ядро должны находиться на локальном компьютере для быстрого доступа
  • ветки никогда не объединяются в одну, а идут параллельно

Должно получиться что то типа такого: введите сюда описание изображения

У кого какие идеи есть по решению такой задачи?

  • Несколько проектов в одном репозитории? Жесть... Так не стоит делать. – A K Dec 19 '17 at 18:17
  • И, судя по "ядро выступает как мастер" -- вы так и не отделили ядро (core) от проектов. Т.е. может даже вы и хотели сделать (допустим) какой-то фреймворк для сайтов и пяток сайтов на этом фреймворке -- но получается слишком сильно связанная архитектура. В такой ситуации надо честно делать отдельные репозитории и для сайтов и для ядра. Аналогия понятна? – A K Dec 19 '17 at 18:17
  • Я не могу этого делать. Ядро - это протокол обмена данными между устройствами, там парсеры, API и куча другого. Поэтому обновлять каждый проект по отдельности это точно жесть... – Олег Перевышин Dec 19 '17 at 18:31
  • 5
  • 1
    @ОлегПеревышин и что, что по отдельности? Все нормальные проекты сделаны именно так. Нужно использовать какую-нибудь систему обновления зависимостей, которая будет автоматически устанавливать обновления ядра из гит-репозитория – andreymal Dec 19 '17 at 18:52
  • 1
    Вообще, наверно, это ваше «ядро» наверно можно назвать словом «фреймворк», но, видимо, он ещё не совсем нормально оформленный фреймворк, если вы его не можете просто так взять и отделить – andreymal Dec 19 '17 at 18:53
  • он постоянно развивается, добавляются новые функции, возможности и т.д. он врят ли когда то отделится вообще, потому что это основа (ствол дерева), а проекты - это крона... как то так примерно Вот например появилась новая функциональная особенность (например обновление устройства с сервера), я хочу чтоб эта возможность появилась у всех устройств сразу. – Олег Перевышин Dec 19 '17 at 19:03
  • Вам всё равно придётся обновлять каждый проект по отдельности, делая мердж (и, потенциально, разгребая возникшие конфликты). Никаких существенных преимуществ перед существованием в форме отдельной зависимости у такого жонглирования ветками нет. –  Dec 19 '17 at 19:40
  • @ОлегПеревышин все «взрослые» фреймфорки постоянно развиваются. Тем не менее, все они распространяются и обновляются отдельно от своей «кроны». Если вы не можете их разделить, значит вы ещё программист-новичок и не умеете в грамотную архитектуру :) – andreymal Dec 20 '17 at 08:10

0 Answers0