2013-08-14 15 views
7

Quale frazione della sintassi del file .gitignore Perforce è stata in grado di implementare?In che modo Perforce ignora la sintassi del file differiscono dalla sintassi gitignore?

documentazione

Il Perforce per P4IGNORE mostra ignora di base e non-ignora con i modelli: http://www.perforce.com/perforce/r12.1/manuals/cmdref/env.P4IGNORE.html

Come meglio posso dire, Perforce non supporta:

# Ignore file.txt, but not subdir/file.txt 
/file.txt 

# Ignore directories named foo, but not files named foo 
foo/ 

Ci sono altre differenze di ignorare elaborazione dei file?

+0

questo è fuori della data per il rilascio più recente Perforce. Per quanto ne so, Perforce ora supporta completamente la sintassi di gitignore. –

+0

Anche se l'articolo dice "Git ignora la sintassi è completamente supportato", sono abbastanza sicuro che il carattere jolly a carattere singolo, per pattern come?, ??, non è ancora supportato. Vedi http://blog.andy.glew.ca/2016/09/perforce-git-ignore-syntax-is-fully.html –

risposta

3

In aggiunta ai due che hai elencato, ho visto che i caratteri jolly non corrisponderanno alle directory, solo ai file.

2

Inoltre, per quanto posso dire (il meccanismo P4IGNORE non è completamente documentata):

P4IGNORE sembra non avere via di fuga # (il cancelletto, un personaggio che ho davvero vuole avere in P4IGNORE dal EMACS crea file di backup di nome # # nome del file.

sembra # in P4IGNORE è un carattere di commento, ma solo se il primo carattere su una riga.

Così

*#* 

sembra ignorare tutti i file con # in essi. , ad esempio sembra essere l'equivalente di Perl regexp qr {^. #. $}.

Questo è un po 'paura, perché se # è stato il commento personaggio normale nella maggior parte dei sistemi, il modello # sarebbe un * seguito da un commento # *, e non terrebbe conto di tutti i file. Ma sembra funzionare.

(gestione del Git di # è un po 'speciale.)

P4IGNORE non sembra gestire modelli come

# matches any single character filename  
? 

un singolo carattere

[seq] 

corrisponde a qualsiasi carattere nel set

ecc.,

quindi per ignorare un nome di file con una singola lettera come 'a', ho dovuto elencare tutte le 62 possibilità [a-zA-Z0-9]. (Ho l'abitudine di creare file tmp come 'a', 'b' ...).

Non ho ancora utilizzato il modo in cui Perforce gestisce i periodi nei nomi dei file.
so per certo che ignorare un nome di file come '# more-merda' quello che dovete fare

.#* 

oltre a

*#* 

, ma questo potrebbe essere solo il normale nascondersi file DOT .

Tuttavia, ci sono stati diversi casi in cui un modello come

tmp-* 

non è stata la cattura di 'tmp-foo.txt'

che ho fissato con l'aggiunta di

tmp-*.* 

(Nota : più recentemente ho usato bzr e hg, con regexp completamente potenti, quindi potrebbe essere necessario cercare cose più potenti di git)

4

Ho avuto una domanda simile e ho trovato questo article in cui ho appreso che Perforce accetta file .gitignore.

In effetti, è possibile specificare più di un nome file in P4IGNORE. In realtà, il mio P4IGNORE assomiglia a questo (questa è una nuova funzionalità di 2015,2):

P4IGNORE=$home/.p4ignore;.gitignore;.p4ignore;

+1

Anche se l'articolo dice "Git ignora la sintassi è completamente supportato", sono abbastanza sicuro che il git carattere jolly singolo, per motivi come?, ??, non è ancora supportato. –

Problemi correlati