Пакет установки Composer из частного репозитория GIT без каталога .git

1

У меня есть проект X, который опирается на модуль Y. Они оба мои частные проекты. У каждого есть свой репозиторий git на битбакете. И у каждого из них есть композитор.json.

Когда я запускаю composer install в проекте X, он получает Y из своего репозитория и перетаскивает его в каталог X vendor.

Проблема заключается в том, что он также создает каталог .git в vendor/jodes/Y/.

Это проблема, потому что что-то продолжает открывать файлы в этом каталоге.git, то есть мои скрипты [непрерывной интеграции] не могут затем удалить каталог .git когда он повторяет этот процесс. Я предполагаю, что это моя IDE.

Как я могу заставить композитор получить Y из репозитория, не создавая директорию ".git"?

X composer.json:

{
    "name": "jodes/X",
    "require": {
        "jodes/Y": "dev-master"
    },
    "repositories": [
        {
            "type": "vcs",
            "url": "https://[email protected]/Jodes/Y.git"
        }
    ]
}

Кажется, что композитор в основном запускает git clone для извлечения из репозитория? Вместо этого, есть ли способ заставить его сделать что-то похожее на git archive в каталог vendor? (а не zip файл).

в качестве обходного пути я попытался настроить мою среду IDE (Netbeans), чтобы игнорировать каталог .git но мои скрипты по-прежнему получают ошибку "Permission denied" при попытке удалить ее.

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

Теги:
composer-php

1 ответ

2
Лучший ответ
composer [install|update] --prefer-dist

должен сделать трюк.

По умолчанию, особенно когда вы ссылаетесь на ветки, вместо тегов ("версий"), композитор предпочитает получать зависимости в качестве источника. Если вы укажете --prefer-dist вы прямо скажете композитору использовать архив.

  • 0
    Спасибо - только что попробовал после удаления каталога вендора, но результат тот же; каталог .git все еще создается в vendor/jodes/Y/ . Возможно, чтобы --prefer-dist имел желаемый эффект, мне нужен определенный параметр в одном из моих файлов composer.json ?
  • 1
    @Jodes Удалите имя пользователя из URL VCS: https://bitbucket.org/Jodes/Y.git вместо https://[email protected]/Jodes/Y.git и оно должно работать.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню