Git подпроекты? - PullRequest
       33

Git подпроекты?

4 голосов
/ 06 мая 2011

Я работаю над несколькими различными надстройками Joomla, но хочу сохранить их как отдельные репозитории git, так как они имеют разные команды разработчиков (и даже организации).Тем не менее, я также хотел бы сохранить их в виде единого каталога с общей базой Joomla (который игнорируется .gitignore).Из-за структуры Joomla, это может быть немного сложнее, так как имеет следующую структуру:

/joomla/  
|--/administrator/  
|--|--/components/  
|--|--|--/component_a/  
|--|--|--/component_b/  
|--|--/language/  
|--|--|--/en-GB/  
|--|--|--|--/component_a_lang.ini  
|--|--|--|--/component_b_lang.ini  
|--/components/  
|--|--/component_a/  
|--|--/component_b/  
|--/language/  
|--|--/en-GB/  
|--|--|--/component_a_lang.ini  
|--|--|--/component_b_lang.ini  

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

Ответы [ 2 ]

3 голосов
/ 06 мая 2011

Как говорит @Ikke, то, как код распределяется по каталогам, делает использование подмодулей для их хранения громоздким.

Я думаю, что я просто использовал бы отдельные ветви для отдельных путей разработки.Это "особенности", верно?Более менее?Так что, вероятно, вполне уместно рассматривать их как ветви функций.

Если ваш центральный репозиторий обслуживается Gitolite, вы можете настроить доступ для каждой ветви для отдельных пользователей и групп.Вы можете сделать так, чтобы каждый мог читать каждую ветку (важно для тестирования), но только благословенные группы могут толкать к своей собственной ветке.

3 голосов
/ 06 мая 2011

Обычно я бы рекомендовал использовать подмодули, но в этом случае они не совсем подходят из-за структуры проекта.

Подмодуль размещается в одном каталоге, поэтому вы не можете распределить его по всему проекту.

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

...