2011-10-12 17 views
5

Sto provando a utilizzare la sincronizzazione p4 per sincronizzare una directory specifica con un determinato numero di elenchi di modifiche utilizzando i caratteri jolly, ma voglio anche escludere un elenco di file che si trovano in quella directory (nelle sottodirectory), ho provato a usare - (sia prima che dopo aver usato un percorso con caratteri jolly), ma il file non viene mai escluso, questo il comando sto cercando:p4 sync, come si escludono i file mentre si utilizzano i caratteri jolly?

esclusione
p4 sync //Repo/Foo/... -//Repo/Foo/Bar/Foobar.txt 

il file sembra funzionare solo quando i file/directory stai sincronizzando non corrispondono i file stai cercando di escludere.

risposta

3

In breve, non è possibile escludere i file su una sincronizzazione. Questo può essere fatto solo all'interno delle specifiche del cliente. (Beh, potrebbe essere fatto attraverso la tabella delle protezioni, ma questa è davvero una questione diversa, credo).

Ma se si desidera sincronizzare una cartella specifica e solo i file in quella cartella, utilizzare *

p4 sync //Repo/Foo/* 

ti porterà solo i file nella cartella Foo.

+0

Ho trovato la soluzione, controlla il mio commento di modifica. –

+0

ignora il mio ultimo messaggio, ho parlato presto:/ –

6

Nel vostro cliente, si avrebbe più righe:

//Repo/Foo/... //my_client/Repo/Foo/... 
-//Repo/Foo/subdirectory/... //my_client/Repo/Foo/subdirectory/... 

Ciò consentirebbe di ottenere tutto nella directory Foo e tutte le sottodirectory eccezione "sottodirectory".

1

È possibile farlo se si utilizza un'etichetta. Creare un'etichetta nel vostro editor preferito (etichetta P4V o riga di comando p4 e aggiungi le due linee:

//Repo/Foo/... 
-//Repo/Foo/Bar/Foobar.txt 

Nel campo di revisione messo @head se si desidera che l'ultima o un numero dalla lista cambiamento Dare l'etichetta un nome. - per esempio "sync_butnot_foobar"

Sulla riga di comando è ora possibile sincronizzare:

p4 sync @sync_butnot_foobar 

Questo ha un enorme vantaggio rispetto al modificare la vostra spec cliente e modello di testa di sincronizzazione Se si esclude un file nel tuo client. spec, la prossima volta che si sincronizza quel file verrà portato in revisione 0 che probabilmente non è quello che volevi.

+0

lol, tieni presente che funzionerà come una nuova specifica del client se utilizzi le opzioni predefinite ... il che significa che esegui la sincronizzazione con la revisione 0 per tutti i file non presenti nell'etichetta – Saebin

Problemi correlati