2013-05-02 21 views
11

Ho un progetto Git con 2 rami:Compositore e rami multipli

  • Master: Attualmente il "ramo stabile", ma sottoposta a cambiato. I rilasci sono taggati da lì.
  • Devel: un ramo di sviluppo per la prossima versione. Questo è fuso in master quando pensiamo che alcune caratteristiche da qui siano abbastanza stabili.

in master, ho un requisito nel mio composer.json che utilizza una versione specifica:

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

Nel mio ramo devel, vorrei utilizzare la versione di sviluppo della dipendenza:

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

In modo efficace, quando i rami vengono commutati e viene eseguito composer install o composer update Mi piacerebbe avere l'aggiornamento del compositore/modificare le dipendenze alle versioni appropriate.

Poiché composer install --dev non supporta una versione diversa di una dipendenza in require-dev, non è possibile impostare la versione diversa nella sezione require-dev.

Inoltre, preferirei non disporre di uno composer.json separato per ogni ramo poiché l'unione risulterebbe piuttosto dolorosa.

Se si dispone di più filiali e ogni ramo utilizza una versione di una dipendenza, qual è il modo migliore per farlo?

risposta

20

È possibile mantenere più versioni di composer.json con nomi diversi:

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

Poi quando si chiama composer.phar install o composer.phar update, si può precedere il file compositore desiderato da utilizzare:

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

Vedere le CLI docs.

+2

Questa è un'idea intelligente! :) – F21

+1

Mi piace la tua idea, ma mi piacerebbe usare: 'composit.json' come file master ' composit.dev.json' per lo sviluppo –