2013-03-08 16 views
7

ho fatto:Come clonare il ramo con git-p4?

git p4 clone //depot/path/to/project/trunk/@all project 

per creare il ramo master di project. Ora voglio clonare //depot/path/to/project/release nel ramo release di project. Come è fatto?

UPDATE: l'utilizzo di --detect-branches non funziona. Segnala che sta aggiornando due rami (quando ci sono davvero tre rami) ma i report git branch esistono solo master.

risposta

0

Credo che "rilevare i rami" si basa su una mappatura di filiali con lo stesso nome del percorso di diramazione nel depot. In caso contrario, probabilmente è necessario utilizzare suggested method per definire il valore di configurazione git-p4.branchList in un repository git vuoto prima di eseguire il comando clone git-p4.

+0

Ah, questo ha senso. Mi stavo chiedendo come funzionasse la "magia" del rilevamento di rami. Farò un tentativo. Grazie. –

+0

Questo non funziona ancora per me. Sospetto che le fusioni siano andate in entrambe le direzioni su almeno alcuni dei nostri rami e sta lanciando una chiave inglese nei lavori di git-p4. –

+0

Ha funzionato per me in passato in un repository molto grande, con qualcuno dei rami più confusi/fusione che abbia mai visto. Dato che git-p4 è scritto in python, in realtà non è così difficile da eseguire il debug. – cmcginty

8

Ecco le note di installazione di quando utilizzo git-p4. Potrebbe essere utile:

  • Scarica il p4 linux client. Conservare il file in ~/bin o /usr/local/bin e chmod +x

  • Setup git-p4 come root

    chmod 755 /usr/share/doc/git/contrib/fast-import/git-p4 
    ln -s /usr/share/doc/git/contrib/fast-import/git-p4 /usr/local/bin 
    
  • Definire globali Git per git-p4

    git config --global alias.p4 '!git-p4' 
    git config --global git-p4.detectRenames true 
    git config --global git-p4.detectCopies true 
    
  • Set definisce per 'P4' diretta utilizzo

    export P4PORT=SERVER_NAME:PORT_NUMBER 
    
  • credenziali di Set d'accesso

    export P4USER=USER_NAME 
    export P4PASSWD=PASSWORD 
    
  • Selezionare i rami Perforce utilizzando P4 'cliente'

    Eseguire il comando 'cliente p4', e aggiungere solo i percorsi/rami siete interessato a. Se si desidera Denominare lo spazio di lavoro del client è possibile aggiungere un argomento CLIENT_NAME opzionale alla fine del comando. Ciò consente a di utilizzare definizioni client diverse sullo stesso computer.

    $ p4 client [CLIENT_NAME] 
    
    View: 
    //depot/main... //CLIENT_NAME/main... 
    //depot/patch... //CLIENT_NAME/patch... 
    //depot/dev... //CLIENT_NAME/dev... 
    
  • clonare il repository

    • semplice importazione

      git p4 clone --use-client-spec --detect-branches //[email protected] GIT_DIR 
      
    • importazione avanzata

      git init PROJ; cd PROJ/ 
      git config git-p4.branchList main:patch 
      git config --add git-p4.branchList main:dev 
      git p4 clone --use-client-spec //[email protected] . 
      
  • Invia modifiche Torna a Perforce

    Per inviare modifiche a Perforce, è necessario uno spazio di lavoro client, separato dall'albero di lavoro git.È consigliabile che lo spazio di lavoro sia su lo stesso file system della directory di lavoro per git Perforce.

    Inoltre, un riferimento al percorso dell'area di lavoro viene memorizzato sul server Perforce e verrà utilizzato durante il comando p4 submit.

    Il primo passo è creare lo spazio di lavoro del client locale. CLIENT_NAME è un argomento facoltativo. Se non lo definisci, p4 userà il tuo nome host.

    p4 client [CLIENT_NAME] 
    

    Verrà spostato su un editor di file prima di completare il comando p4. Questo consente di modificare le impostazioni del client prima che vengano inviate al server . È necessario modificare il valore Root in una nuova directory all'esterno dell'albero di git (ad es. ../p4-working) Inoltre, verificare i valori Owner e Client prima di uscire. Questi valori stanno prendendo dal tuo ambiente, e non può essere modificato nell'editor.

    p4 clients | grep USERNAME 
    

    Se non è stato utilizzato il nome del client predefinito, deve essere definito nel vostro locale config git:

    git config git-p4.client CLIENT_NAME 
    

    Quando si è pronti a spingere le modifiche di codice, utilizzare i comandi:

    git p4 rebase 
    git p4 submit 
    

    È possibile rimuovere i clienti dal sever, quando non è più in uso:

    p4 client -d CLIENT_NAME 
    
+1

Ti manca --add nel secondo 'git config --add git-p4.branchList principale: dev' –

Problemi correlati