Kompozytor wymaga nazwy gałęzi

106

Na przykład chcę wymagać:

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

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

W tym przykładzie próbuję wymusić google/apiclientna gałęzi v1-master. Pojawia się błąd:

  [UnexpectedValueException]                                                        
  Could not parse version constraint v1-master: Invalid version string "v1-master"
Czarodziej
źródło

Odpowiedzi:

188

Musisz poprzedzić wszystkie gałęzie dev (= nieoznaczone) znakiem dev-.

Aby zainstalować potrzebną gałąź, użyj:

composer require google/apiclient:dev-v1-master

Zobacz dokumentację kompozytora .

Tomáš Votruba
źródło
1
Przydatne informacje. Dzięki!
Matt Komarnicki
Próbuję tego na komputerze z systemem Windows, ale nie mogę znaleźć odpowiedniego polecenia do uruchomienia programu Composer w celu pobrania pakietu z repozytorium git. Więc proszę o pomoc w tej sprawie?
Starszy kierownik zespołu programistów PHP
Dodaj przedrostek „dev-” jest tylko w poleceniu kompozytora. Nie musisz nic zmieniać w nazwie gałęzi repozytorium
Silas Ribas Martins
Nie można ponownie zainstalować zaktualizowanej gałęzi nawet z --no-cache, więc użyłem tego:composer require google/apiclient:dev-v1-master#COMMITHASH
M Rostami
46

to zadziała:

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

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

więc wzorzec to "dev- *", jeśli nazwa gałęzi to "bug-fix", to "dev-bug-fix"

z linią poleceń:

composer require google/apiclient:dev-BRANCH_NAME
fico7489
źródło
4
Dzięki za wyjaśnienie wzoru „dev- *”
Emeka Mbah
4
Jeśli rozwidliłeś główne repozytorium, nie zmieniaj nazwy dostawcy w wymaganej części. Widelec: "url": "https://github.com/your-username/google-api-php-client.git"ale wymaga pobytów: googlesprzedawca.
Vladimir Vukanac
1
@VladimirVukanac ten mały klejnot potrzebuje większej widoczności!
Jacob Thomason,