2014-09-16 12 views
18

È possibile recuperare una determinata richiesta di pull con il compositore? Come un commit specifico da una forcella? Come sarebbe la direttiva?Posso eseguire un commit specifico con il compositore?

modifica: contesto Questo sarebbe utile quindi non devo attendere la creazione di un nuovo tag. Sono certo che sarà fusa, tuttavia non so se quando poi gli sviluppatori avranno la possibilità e preferisco non mettere fuori il flusso di lavoro sono in ...

Edit 2: ora che ci penso, sicuramente quando gli sviluppatori a fare un fork di un pacchetto pubblico che potrebbe aver bisogno di testare la propria forchetta all'interno di un progetto o due prima ancora che spinge una richiesta di pull

Edit 3: esempio sto cercando di tirare questo https://github.com/valorin/dispatcher/commit/c566eb6902f378abd59943e7ea09f61e734c8960 inutilmente, ho provato:

"valorin/dispatcher": "develop#c566eb6902f378abd59943e7ea09f61e734c8960" 

e

"indatus/dispatcher": "develop#c566eb6902f378abd59943e7ea09f61e734c8960" 

Edit 4: grande successo

"require": { 
     "indatus/dispatcher": "dev-develop#c566eb6" 
} 

aggiungendo il prefisso dev- ha fatto il trucco

risposta

21

Lei non può fare riferimento direttamente una richiesta di pull, ma si può sempre entrare in possesso di uno specifico commesso. Hai solo bisogno di trovare l'hash di commit che la richiesta pull introduce. (Se stai usando github è nella scheda commit).

allora avrete bisogno di usare qualcosa di simile nel tuo composer.json -

"require": { 
    "mysoftware/thesoftware": "dev-master#3f38376d" 
} 

Dove mysoftware/thesoftware è il solito nome del fornitore/software cosa si usa, e la parte dopo il '#' su il lato destro è lo specifico hash di commit che desideri.

1

Sì: è sufficiente l'ID commit. Diciamo che vuole tirare in this commit to Ardent (Laravel framework, PHP) - si può costringerlo a che impegnarsi con

"require": { 
    "laravelbook/ardent": "master#9fbe73399d84fc726dc9e122955de444f4fb4901" 
} 

Per tirare da una forchetta, hai solo bisogno di specificare che la forcella nel richiedere, invece. Ad esempio, this is one of my forks di un altro repository. Per ottenere che commettono, posso richiedere questo

"require": { 
    "JoeChilds/Swiftlet": "master#effd5c59f398d56fec261cf1d73a7397cdf78a56" 
} 
+0

ho avuto questo problema: 'Impossibile analizzare versione principale vincolo # c566eb6902f378abd59943e7ea09f61e734c8960: Invalid versione stringa "maestro # c566eb6902f378abd59943e7ea09f61e734c8960"' – Moak

+1

E 'un pronti contro termine pubblica? Se è così, puoi collegarmi ad esso? :-) – Joe

+0

Cercando di estrarre questo https://github.com/valorin/dispatcher/commit/c566eb6902f378abd59943e7ea09f61e734c8960 – Moak

2

La soluzione suggerita e approvata funziona per scaricare i commit già uniti nel repository principale.

SE VUOI SCARICARE UN IMPEGNO DA UNA RICHIESTA DI SCOMPARSA NON SEI FATTO devi seguire un percorso diverso.

Supponiamo di avere il pacchetto vendor/package e che "RandomUser" crea un fork su GitHub, crea un nuovo ramo patch-1 e vi impegna alcune modifiche che si desidera testare scaricandole tramite compositore.

Quindi, il file composer.json deve essere scritto in questo modo:

{ 
    "type": "project", 
    "license": "proprietary", 
    "require": { 
     ... 
     "vendor/package": "dev-patch-1#1234567890", 
     ... 
    }, 
    ... 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "https://github.com/RandomUser/Package.git" 
     } 
    ] 
} 

Come si può vedere, nella sezione require del file composer.json si richiede il pacchetto come al solito, ma si aggiunge il ramo specifico dev-patch1 , con il prefisso dev- per ridurre la stabilità minima su dev e l'aggiunta dello #1234567890 all'ID impegno specifico.

Quindi si aggiunge anche il repository specifico dell'utente che ha commesso il PR: questo rende Composer in grado di scaricare il repository git, controllare le succursali esistenti su di esso, leggere il suo file composer.json e utilizzarlo per installare la dipendenza richiesta.

Problemi correlati