РЕДАКТИРОВАТЬ: То, чего я пытался добиться здесь, может быть выполнено проектом Yeoman.
Итак, я настроил git+composer+satis на частном сервере, все работает нормально, я в восторге от этого. Надо любить их всех.
Я использую git для проектов и для частных пакетов, так что теперь основной рабочий процесс выглядит так:
git clone git@myserver:the-project-name
composer install
Это клонирует репозиторий проекта и устанавливает необходимые зависимости. Фантастический.
Но я также хочу иметь возможность использовать некоторые «скелетные репозитории» и просто копировать их содержимое в свой проект, сохраняя информацию о зависимостях.
Возьмите этот пример:
- Я создаю репозиторий git под названием: test-project, затем клонирую его локально.
- У меня есть еще один репозиторий git, называемый fb-bootstrap, который является скелетом для приложений facebook.
- У меня также есть еще один git-репозиторий начальной загрузки, который я также хочу включить: например, это будет папка api/. Назовем это: API-бутстрап
- Поэтому я тоже хочу клонировать их, но, конечно, я не могу этого сделать, потому что у меня уже есть репозиторий git в том же каталоге.
- Возможное решение: я использую следующий код, поэтому я получаю только файлы: 'git archive --format=tar --remote=git@myserver:the-bootstrap-repos HEAD | смола xf-'
Это нормально, НО у него есть проблема: у меня разные зависимости - разные файлы composer.json. - для репозиториев fb-bootstrap и api-bootstrap, поэтому мне нужно найти способ установить их все.
Обратите внимание, что я не использую композитор для этого, так как я не могу поместить что-либо в папку поставщика/, кроме автоматически загружаемых классов php, потому что доступ ограничен этой папкой.
Снятие этого ограничения также не решит проблему, потому что, если я добавлю зависимость позже и вызову composer update
, я могу потерять изменения, внесенные в папки начальной загрузки.
Подмодули и описанный выше хак с единственным копированием файлов не совсем подходит по вышеупомянутым причинам.
Обзор:
Мне нужно решение, в котором я могу включить столько загрузочных репозиториев, сколько мне нужно, и после того, как я закончу с этим, я должен иметь возможность установить все зависимости.
Так:
- git инициировать репозиторий проекта,
- git локально клонировать репозиторий проекта,
- получить пару репозиториев начальной загрузки, которые мне нужны,
- установите зависимости, которые я объявляю для проекта, и все зависимости репозиториев начальной загрузки.
Есть ли способ сделать это?
Также: если вы думаете, что я подхожу к этой проблеме совершенно неправильно, пожалуйста, не стесняйтесь сказать мне об этом. Я все равно адаптируюсь к новым техникам, меня не пугают изменения. :)
Любой комментарий приветствуется.