Как настроить проект Git, содержащий другие проекты?
например. Я работаю над онлайн-картографическим приложением. Мы разработали инструмент GPS вместе с оборудованием в SF. Мы одновременно разработали скрипт Python Geomapping вместе с другой задачей (которая заботится только о геомаппинге). Наши собственные файлы ядра объединяют их и основываются на них для нужного нам приложения.
Каждый из проектов должен существовать сам по себе - люди, которые заинтересованы в GPS, заинтересованы только в GPS - но «родительский» проект, который включает в себя все остальные, должен быть доступен как проект.
Я потратил некоторое время, пытаясь понять подмодули, но они, кажется, обладают слишком большой независимостью для того, что нужно.
Также, если возможно, было бы неплохо, если бы каждый из этих проектов содержал один или два перекрывающихся скрипта. Может ли один проект Git включать файл, который не является частью его «корня», так что, когда этот файл обновляется любой из команд, обе могут получить выгоду?
Это выполнимо с Git? С ртутью? Имеет ли значение хост (GitHub, Gitorious)?
У меня есть идея использовать Subversion для «родителя» - игнорировать папки .git и использовать Git для проектов (игнорируя папки .svn) - но это только последнее средство.
редактирование:
Чтобы объяснить, почему я не хочу субмодулей:
- Когда пользователи загружают, zip не включает подмодули ( здесь & здесь ).
То же самое, когда даже соавторы пытаются настроить проект. Это шоу-стоппер.
- Подмодули заморожены - они не (легко) выбирают последнюю версию проекта, на которую указывают.
- Другие причины, указанные в фантастических ответах ниже и в этом монологе в NoPugs .
Слияние поддеревьев (представленное мне Полом ниже) не подойдет: трудно обновить источник [поддерева] из проекта, в который он сливается, и этот источник должен находиться вне корневого каталога. папка проекта. Будучи веб-приложением, очень важно, чтобы все мои страницы имели внутреннюю ссылку на папку внутри них, а тестирование и обновления выполнялись непосредственно в этой папке. (Надеюсь, это понятно и полезно для других.)
Все еще изучаю настройку «удаленных веток», но другие идеи все еще приветствуются.