Как добиться ниже с помощью Git? - PullRequest
4 голосов
/ 17 февраля 2009

Постановка задачи

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

Thinkbot (HEAD)

-> сборочный бот (дерево / подкаталог)

 -> include

 -> source

 -> lib

 -> obj

-> vpl (дерево / подкаталог)

 -> include

 -> source

 -> lib

 -> obj

-> включить

-> источник -> bin`

Теперь, если кто-то работает над модулем vpl, он получит include и исходную папку, содержащую код, а из модуля assemblybot - библиотеку. Поэтому, когда он вносит изменения и компилирует из HEAD, у него все получается.

Ребята, как мне реализовать это в Git? Указатели на что читать? Командные фрагменты были бы хороши?

1 Ответ

8 голосов
/ 17 февраля 2009

На данный момент я могу думать только о том, чтобы использовать подмодули . Каждый из двух модулей (assemblybot, vpl) будет субмодулем, а остальная часть дерева будет в супер-проекте.

Это, по сути, означает, что эти два модуля должны быть в отдельных репозиториях, а затем в главном репозитории вы git submodule init git://foo.com/assemblebot.git.

Я не уверен, что это стоит усилий в целом. Это не одна из сильных сторон git (на самом деле это единственное, что, я думаю, нуждается в улучшении).

Лучшая поддержка частичных проверок находится в разработке ( узкие и редкие клоны).

Редактировать: Учитывая, что vpl и assemblybot зависят от include и source, возможно, лучше включать include и source в качестве подмодулей репозиториев vpl и assemblybot. Тем не менее, это не отдельные проекты, и Git отслеживает содержание проекта. Я не вижу причины, почему эти модули должны быть отделены. Может просто сказать разработчикам не трогать чужой код?

...