Композитор требует название ветки


106

Например, я хочу потребовать:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/google/google-api-php-client.git"
    }
  ],

  "require": {
    "google/apiclient": "v1-master"
  }
}

В этом примере я пробую требовать google/apiclientв ветке v1-master. Я получаю ошибку:

  [UnexpectedValueException]                                                        
  Could not parse version constraint v1-master: Invalid version string "v1-master"

Ответы:


188

Вам нужно префикс всех ветвей разработки (= без тегов) dev-.

Для установки нужной вам ветки используйте:

composer require google/apiclient:dev-v1-master

См. Документы композитора .


1
Полезная информация. Спасибо!
Мэтт Комарницки

Я пытаюсь это сделать на компьютере с Windows, но не могу найти правильную команду для запуска композитора для загрузки пакета из репозитория git. Пожалуйста, помогите с этим?
Старший руководитель группы программистов PHP

Добавить префикс «dev-» можно только в команде композитора. Вам не нужно ничего менять в названии веток репозитория
Сайлас Рибас Мартинс

Не удалось переустановить обновленную ветку даже с --no-cache, поэтому я использовал это:composer require google/apiclient:dev-v1-master#COMMITHASH
M Ростами

46

это будет работать:

{
  "repositories": [
    {
      "type": "git",
      "url": "https://github.com/google/google-api-php-client.git"
    }
  ],

  "require": {
    "google/apiclient": "dev-BRANCH_NAME"
  }
}

поэтому шаблон - "dev- *", если имя вашей ветки - "bug-fix", то "dev-bug-fix"

с командной строкой:

composer require google/apiclient:dev-BRANCH_NAME

4
Спасибо за объяснение паттерна «dev- *»
Эмека

4
Если вы разделили основное репо, не меняйте имя поставщика в обязательной части. Вилка: "url": "https://github.com/your-username/google-api-php-client.git"но требует пребывания: googleпоставщик.
Владимир Вуканац

1
@VladimirVukanac, эта маленькая жемчужина нуждается в большей видимости!
Джейкоб Томасон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.