2013-01-23 9 views
7

Voglio richiedere solo una parte secondaria di un repository git (invece della cosa completa). La ragione per cui voglio farlo è perché il repository è enorme.Come utilizzare il compositore per installare una parte di un repository git?

Nel mio caso il repository è: https://github.com/pubnub/pubnub-api.git e voglio solo la directory/php.

ho il seguente pacchetto definito nella compositore:

{ 
      "type": "package", 
      "package": { 
       "name": "pubnub", 
       "version": "dev-master", 
       "source" : { 
        "url": "https://github.com/pubnub/pubnub-api.git", 
        "type": "git", 
        "reference":"master" 
       } 
      } 
    }, 

Qualche consiglio?

+1

Si ricorda che il meglio che si può fare è recuperare un repository nullo (niente nella directory di lavoro), quindi eseguire il checkout dei file in 'php'. Finirai comunque con tutta la cronologia usando * git clone * (come suppongo che il compositore faccia dietro le quinte). –

+0

Sto cercando lo stesso comportamento. Qualche fortuna? – sectus

+1

Sono interessato a ottenere una parte del repository con il compositore. – sectus

risposta

1

Sembra che la directory php sia stata spostata sul proprio repository qui https://github.com/pubnub/php. Questo può essere d'aiuto per questo progetto, ma non ho idea di come ottenerlo dal repository principale e dal compositore ...

+0

Oh, ho bisogno di un altro repository che non sia diviso. – sectus

+0

@flavien, grazie per le note, ma non risponde alla domanda generale. –

9

Data la risposta a "Is there any way to clone a git repository's sub-directory only?" È "No" e la funzionalità di verifica della sottodirectory sarebbe richiesta dal compositore per soddisfare la funzionalità desiderata, quindi suggerirei che il miglior compositore potesse fare era controllare l'intera cosa e poi cancellare ciò che non volevi.

In breve: non possibile.

La risposta più lunga: è che git può fare un sparse checkout così in teoria il compositore potrebbe un giorno supportare tale funzione. Puoi usare il campo autoload per caricare solo la sezione di codice che vuoi (cioè, non caricare l'intera lib).

Problemi correlati