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