Каков наилучший способ обработки нескольких проектов при Git переключении с SVN? - PullRequest
1 голос
/ 22 апреля 2020

Мы рассматриваем возможность переключения всех проектов в моей компании с SVN на Git, но я боюсь, что это будет проблемой.

Это текущая ситуация в SVN * 1004. *

У меня есть один главный проект (назовем его Project0), который является отправной точкой. Затем у меня есть более 100 проектов (которые я назову ProjectA, ProjectB, .... ProjectZ), и каждый из этих проектов связан с одним клиентом.

Все ProjectsA-Z создаются как филиал Project0 в какой-то момент своей истории пересмотров. После создания нового ProjectX, начиная с Project0, в ProjectX будут зафиксированы все настройки для конкретного клиента.

Все время случается, что некоторые коммиты объединяются из ProjectX в Project0, а некоторые в других случаях некоторые коммиты объединяются из Project0 в ProjectX.

Каждый разработчик компании обычно работает только над несколькими проектами (например, над ProjectsA, ProjectB и над Project0), поэтому ему не нужно загружать все проекты для работы на его рабочей станции.

Проблема Git

Проблема, которую я вижу на Git, заключается в том, что нам нужно создать одну репозиторий для Project0, а затем все остальные ProjectsA-Z в качестве ветвей Project0. Это проблема, потому что, на мой взгляд, даже если мне нужно работать с ProjectX, мне нужно будет загрузить весь репозиторий (содержащий все Project0 и ProjectsA-Z), который может быть очень большим.

Есть ли другой способ организовать рабочий процесс в Git, чтобы иметь возможность делать то же самое, что мы делаем сейчас? Одним из способов было бы создать новый репозиторий для каждого Project AZ, но тогда я не нашел простого способа объединить один коммит из или в Project0.

1 Ответ

0 голосов
/ 26 апреля 2020

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

Если вы храните и часто модифицируете много или огромные двоичные двоичные объекты, это может стать вопрос. В этом случае вы можете изменить fetch config ваших клиентов, чтобы они выбирали только те ветви, которые им нужны, а не все, но это может быть немного сложным, если вы только начинаете с git.

...