Скажем, у меня есть 3 git репозитории, каждая с папкой lib
и tests
в корне. Все 3 хранилища являются частью того, что я хочу быть единственным пакетом, однако для меня важно сохранить отдельные репозитории.
Я новичок в git, исходящий из svn, поэтому я читал на submodules
и как они отличаются от svn:externals
. В SVN у меня может быть один
lib/vendor/package
а внутри package
я мог бы настроить 3 внешних элемента, указывающих на каждый из моих 3-х репозиториев lib
, переименовывая его соответствующим образом, как
lib/vendor/package/a -> repo1/lib
lib/vendor/package/b -> repo2/lib
lib/vendor/package/c -> repo3/lib
но из моего понимания это невозможно с помощью git. Я что-то пропустил?
На самом деле я надеюсь, что это можно решить одним из двух способов.
- Кто-то укажет, как создать 4-й репозиторий git, который имеет другие 3 в качестве подмодулей, организованных, как я уже упоминал выше (где я могу иметь папку
a
,b
иc
внутри корень) - Кто-то укажет, как установить это с помощью
svn:externals
в сочетании с поддержкой githubs svn, ссылаясь на каталогlib
в каждом хранилище git (из моего понимания это невозможно).
Обновление:
Я действительно пытался следить за учебником подмодулей, с которым вы связались, но я столкнулся с следующей проблемой.
Выполнение действий, как показано выше, вместо отображения типа
lib/vendor/package/a -> repo1/lib
lib/vendor/package/b -> repo2/lib
lib/vendor/package/c -> repo3/lib
Я остался с
lib/vendor/package/a -> repo1
lib/vendor/package/b -> repo2
lib/vendor/package/c -> repo3
это не идеально, поскольку теперь для доступа к ClassA
внутри папки repo1
lib
путь
lib/vendor/package/a/lib/ClassA
когда я действительно пытаюсь получить (и это возможно с помощью svn: externals)
lib/vendor/package/a/ClassA
поскольку a
выше на самом деле repo1/lib
, а не корневой каталог repo1
.
Что-то вроде этого важно, поскольку, например, PHP5.3
, используя SplClassLoader
(http://gist.github.com/221634), это требует отображение пространства имен в каталог, например
\Package\a\ClassA -> lib/vendor/package/a/ClassA
Вот где мое концептуальное недоразумение заключается в том, как настроить этот 4-й репозиторий git, чтобы разрешить мои сопоставления каталогов, как указано выше.