Управление различными кодами клиентов в филиалах - PullRequest
2 голосов
/ 04 июня 2019

Я довольно новичок в git, и это может быть вопрос с очевидным ответом:

Итак, у меня есть проект / фреймворк, который я использую для управления кучей автоматизированных тестовых случаев.Итак, структура кода папки приведена ниже.

Java
|-Package1
    |-Common code
    |-tests
        |- Client1 tests
        |- Client2 tests
        |
        |
        |- ClientN tests

Рекомендуется ли поддерживать специфичный для клиента код в разных ветках?Или лучше сделать копию проекта и поддерживать в разных репозиториях для каждого клиента?По сути, каждый клиент имеет разные тесты, написанные поверх одного и того же ядра с использованием Selenium / TestNG.

1 Ответ

0 голосов
/ 04 июня 2019

Оба варианта возможны, но я думаю, что здесь больше вопрос ремонтопригодности. В этом случае я бы использовал отдельный подход к репозиториям, но с дополнительными: git submodules

Есть 2 причины для выбора этого подхода:

  • сложность ведения отдельных веток. У каждого клиента будет рабочий процесс разработки. Это означает, что вам, вероятно, придется отключиться, когда вы захотите добавить новую функцию к одному из ваших клиентов из существующей ветви клиента, и все станет грязно. В какой-то момент вы можете начать путать ветки;
  • вторая причина - идти в ногу с общим кодом; если у вас есть клиенты в разных ветках, как вы следите за обновлениями общего кода? регулярные слияния / перебазирования ...? В долгосрочной перспективе гораздо больше накладных расходов, чем при использовании отдельных репозиториев git.

При отдельном подходе к репо / подмодулю вы получите что-то вроде этого:

Common Code Repo ( referred to as CCR )

Client 1 Repo has CCR as submodule
Client 2 Repo has CCR as submodule
...
Client N Repo has CCR as submodule

Таким образом, все управляется независимо, и каждый проект может иметь свой собственный поток без зависимостей и беспорядочной структуры ветвления.

...