2013-09-27 2 views
0

Когда я устанавливаю зависимость от BitBucket (git repo) через vcs в конфигурации репозитория, он клонирует репо. Затем, когда я передаю свой родительский проект, он не фиксирует файлы, а просто ссылку на репозиторий зависимостей.Composer vcs installs (git repo) wont commit to parent repo

Как я

а) совершать эти файлы в родительский мерзавца репо. Чтобы они отображались в интерфейсе BitBuckets (и других клонов или загружаемых zip-файлах)

b) сообщите композитору, что он загружает zip-файл для зависимости вместо клонирования репо. Я указал «preferred-install»: «dist» в composer.json, но ничего не сделал. Примечание. Это частный репозиторий.

ответ

2

Во-первых, вы не должны редактировать и/или передавать из репозиториев, которые создаются в каталоге /vendor (или в том месте, которое вы определили для работы в этом каталоге).

Обычный случай заключается в том, что вы включаете библиотеку от кого-то еще, и у вас не должно быть прав фиксации, кроме внешнего репозитория. Если вы хотите, чтобы изменения были внесены или реализована функция, может быть такой рабочий процесс, как запросы на загрузку, отслеживание проблем и т. Д. Чтобы получить ваше обновление, вы ожидаете появления новой версии, а затем звоните composer update.

Те же правила применяются к вашим собственным библиотекам. Вы должны были заметить, что если вы не исключаете каталог /vendor через .gitignore в свой основной проект, любой удаленный репозиторий, клонированный Composer, рассматривается как подмодуль git. Я предполагаю (не имея опыта с ними), что тогда будут применяться обычные правила для подмодулей.

Но я бы рекомендовал не развиваться таким образом. У вас действительно должно быть два разных репозитория, каждый из которых может работать самостоятельно - ваша библиотека должна быть отделена от основного проекта, и любое развитие там может быть перенесено в BitBucket. Затем вы можете обновить каталог поставщика с помощью Composer.

Теперь загрузка ZIP: у Composer есть специальная обработка дела, если репозиторий размещен в Github. Github предоставляет интерфейс для загрузки ZIP-шаров репозитория, с тегами, ветвями или идентификаторами фиксации в качестве ключа. Эти загрузки доступны для чтения в мире, поэтому нет проблемы с аутентификацией.

Ваша собственная библиотека также может предоставить местоположение для загрузки ZIP-файла этой версии. Но это довольно хлопот, чтобы убедиться, что он всегда правильно поддерживается, если вы делаете это вручную. Я предлагаю вам использовать программное обеспечение для этого: Satis (detailed description).

Satis создает как минимум два статических файла, которые необходимо разместить на веб-сервере, доступном с ваших машин разработки, и также может также создавать ZIP-файлы для каждого найденного тега в ваших хранилищах.

После этого вы изменили бы справочные ссылки ваших репозиториев в основном проекте на один указатель на веб-сервер веб-сайта Satis.

И всякий раз, когда вы создаете новый тег в одном из своих репозиториев, вы снова запускаете Satis для получения новой информации и создания новых ZIP-файлов.

Только в том случае, если вы указали место для загрузки ZIP, у вас будет разница с опцией preferred-install=dist. Без места загрузки Composer всегда будет клонировать исходный репозиторий.

+0

Я не делаю редактирования в клонированном репо. Просто хочу, чтобы файлы в этой папке были привязаны к родительскому репо.Который, как мы думали, может быть модулем git (хотя я не вижу конфигурацию .gitmodule) Причина, по которой мне нужны файлы, я использую эластичный beanstalk на aws и вам нужно сделать git aws.push , которому требуется полная копия завершенного суб-репо. В основном beanstalk - это еще один BitBucket для версий, которые видит сервер, и без этих файлов, которые они никогда не развертывают на сервере. –

+0

Вы можете создать небольшой скрипт обновления (чтобы не выполнять вручную), который сначала удаляет папку поставщика, а затем вызывает «компоновку установки» (или обновление), а затем удаляет все «.git» каталоги из всех установленных библиотек. Затем добавьте и зафиксируйте любые изменения в '/ vendor', нажмите и разверните. – Sven

Смежные вопросы