2013-08-14 4 views
7

Welchen Bruchteil der .gitignore-Dateisyntax konnte Perforce implementieren?Wie unterscheidet sich die Dateisyntax von Perforce von der Gitignore-Syntax?

Die Perforce Dokumentation für P4IGNORE zeigt grundlegende ignoriert und un-ignoriert mit Mustern: http://www.perforce.com/perforce/r12.1/manuals/cmdref/env.P4IGNORE.html

Wie am besten ich sagen kann, Perforce nicht unterstützt:

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

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

Gibt es weitere Unterschiede in der ignorieren Dateiverarbeitung?

+0

Dies ist veraltet für die jüngste Perforce-Release. Soweit ich das beurteilen kann, unterstützt Perforce nun vollständig die .gitignore-Syntax. –

+0

Obwohl der Artikel sagt "Git ignorieren Syntax wird vollständig unterstützt", bin ich ziemlich sicher, dass die git Einzelzeichen Platzhalter, für Muster wie?, ??, wird immer noch nicht unterstützt. Siehe http://blog.andy.glew.ca/2016/09/perforce-git-ignore-syntax-is-fully.html –

Antwort

3

Zusätzlich zu den beiden, die Sie aufgelistet haben, habe ich gesehen, dass Platzhalter nicht gegen Verzeichnisse, nur Dateien passen.

2

Auch soweit ich (der P4IGNORE Mechanismus unvollständig dokumentiert ist) sagen kann:

P4IGNORE scheint keine Möglichkeit zu haben # (Raute-Zeichen, ein Zeichen, das ich wirklich haben will zu entkommen in P4IGNORE seit EMACS erstellter Sicherungsdateien mit dem Namen # Dateinamen #.

Es ist wie # in P4IGNORE aussieht, ist ein Kommentarzeichen, aber nur, wenn das erste Zeichen auf einer Linie.

So

*#* 

scheint alle Dateien mit # in ihnen zu ignorieren. , d. H. Es scheint das Äquivalent von Perl regexp qr {^ zu sein. #. $}.

Das ist ein bisschen beängstigend, denn wenn # die normalen Kommentarzeichen in den meisten Systemen waren das Muster # a * von einem Kommentar # * gefolgt wäre, und würde alle Dateien ignorieren. Aber es scheint zu funktionieren.

(Git Bei der Verarbeitung von # ist ein bisschen auch etwas Besonderes.)

P4IGNORE scheint nicht Muster zu handhaben wie

# matches any single character filename  
? 

ein einzelnes Zeichen

[seq] 

jedes Zeichen im Satz

usw.,

um einen Dateinamen mit einem einzigen Buchstaben wie 'a' zu ignorieren, musste ich alle 62 Möglichkeiten auflisten [a-zA-Z0-9]. (Ich habe die Angewohnheit, tmp-Dateien wie 'a', 'b' ...) zu erstellen.

Ich habe noch nicht Perforce Umgang mit Perioden in Dateinamen groked.
Ich weiß sicher, dass Sie einen Dateinamen wie zu ignorieren ‚# more-Mist‘ Sie

.#* 

neben

*#* 

aber dies kann nur normale Punktdatei versteckt zu tun haben werden .

Allerdings gibt es mehrere Fälle, in denen ein Muster wie

tmp-* 

wurde nicht 'tmp-foo.txt'

fangen, die ich durch

Zugabe von festen
tmp-*.* 

(Hinweis : in letzter Zeit habe ich bzr und hg, mit völlig leistungsfähigen Regexps, so könnte nach etwas stärker als git bietet suchen)

4

Ich hatte eine ähnliche Frage und dann fand diese article, wo ich erfuhr, dass Perforce .gitignore-Dateien akzeptiert.

In der Tat können Sie mehr als einen Dateinamen in P4IGNORE angeben. In der Realität sieht mein P4IGNORE wie folgt aus (dies ist eine neue Funktion in 2015,2):

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

+1

Obwohl der Artikel sagt "Git ignorieren Syntax wird vollständig unterstützt", ich bin ziemlich sicher, dass die git single character Wildcard, für Muster wie?, ??, wird immer noch nicht unterstützt. –

Verwandte Themen