2013-05-02 5 views
11

Ich habe ein Git-Projekt mit zwei Zweigen:Komponist und mehrere Zweige

  • Master: Zur Zeit der „stabilen Zweig“ aber geändert unterworfen. Releases werden von dort markiert.
  • Devel: Ein Entwicklungszweig für die nächste Version. Dies wird zu Master zusammengefasst, wenn wir davon ausgehen, dass einige Features von hier aus ziemlich stabil sind.

In Meister, ich habe eine Verpflichtung, in meinem composer.json, die eine bestimmte Version verwendet:

"require" : { 
    "triagens/arangodb" : "1.2.1", 
    "php" : ">=5.4.0" 
}, 

In meinem Entwick Zweig, würde Ich mag die Entwicklungsversion der Abhängigkeit verwenden:

"require" : { 
    "triagens/arangodb" : "dev-devel", 
    "php" : ">=5.4.0" 
}, 

Effektiv, wenn Zweige umgeschaltet werden, und composer install oder composer update ausgeführt wird Ich möchte Composer aktualisieren/ändern Sie die Abhängigkeiten zu den entsprechenden Versionen.

Da composer install --dev keine andere Version einer Abhängigkeit in require-dev unterstützt, kann ich die unterschiedliche Version im require-dev Abschnitt nicht festlegen.

Ich würde auch keine separaten composer.json für jeden Zweig als Zusammenführung würde ziemlich schmerzhaft sein.

Wenn Sie mehrere Zweige haben und jede Verzweigung eine Version einer Abhängigkeit verwendet, was ist der beste Weg, dies zu tun?

Antwort

20

Sie können mehrere Versionen von composer.json unter verschiedenen Namen beibehalten:

  • composer.master.json
  • composer.dev.json

Dann, wenn Sie composer.phar install oder composer.phar update aufrufen, können Sie die gewünschte Komponist Datei Vorwort zu verwenden:

  • COMPOSER=composer.master.json php composer.phar update
  • COMPOSER=composer.dev.json php composer.phar update

die CLI docs See.

+2

Das ist schlaue Idee! :) – F21

+1

Ich mag deine Idee, aber ich würde gerne verwenden: 'composer.json' als Master-Datei ' Composer.dev.json' für die Entwicklung –