Предложения Git Workflow - PullRequest
       0

Предложения Git Workflow

0 голосов
/ 27 февраля 2012

Я немного новичок в Git.Я только что перешел из SVN, и я пытаюсь выяснить некоторые вещи.

У меня есть система с тремя типами конкурсов (три разных набора функций), и у каждого из них будут свои конкурсы (так чтотип 1 будет иметь 3 контеста, а тип 2 будет иметь 2, а тип 3 будет иметь, например, 4), и все конкурсы вне типа основаны на этой кодовой базе конкурсов, только с другим html / css.Конкурсная система MVC, так что это 1 контроллер, 1 модель и 3 вида + ресурсы (css / js / images).

Я пытаюсь выяснить, как лучше всего их хранить.В Subversion я только что сделал 15 миллиардов веток, но теперь, когда я переезжаю, я бы хотел немного его почистить.

Есть предложения?

Ответы [ 2 ]

3 голосов
/ 27 февраля 2012

В Git ветвление на самом деле значительно дешевле / чище / проще, поэтому ничто не мешает вам продолжать ветвление.Хотя 15 миллиардов могут быть немного чрезмерными.

Вы должны просто объединить свои три "типа" конкурсных приложений в одно приложение, которое меняет свое поведение на основе файла конфигурации.Тип разделенной функциональности, о котором вы говорите, - не та проблема, которую должен решать контроль версий.

"Git" мог бы клонировать это одно приложение в совершенно новое приложение для конкретного развертывания и добавление настраиваемого клиентского CSS / HTML в новый репозиторий.Любые изменения в базовой функциональности будут сделаны в родительском проекте и потянет в разветвленные проекты.

Вы не должны делать 200 расходящихся ветвей в одном и том жехранилище для конкретных клиентов.В этом нет никакой выгоды, и есть один огромный недостаток: каждый раз, когда вы хотите клонировать репозиторий для конкретной установки клиента, вы будете перетаскивать данные каждого отдельного клиента (включая всю историю его активов) по сети.,Накладные расходы будут непомерно высокими.

1 голос
/ 27 февраля 2012

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

  1. Создайте ветку vanilla с общим кодом, который должен быть у всех продуктов.
  2. Создайте ветки product с кодом, специфичным для каждого продукта.
  3. Продолжить разработку общей функциональности в ветке vanilla и объединить этот код с ветвями продукта.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...