2013-08-14 28 views
7

Phần nào của cú pháp tệp .gitignore Perforce có thể triển khai?Perforce bỏ qua cú pháp tệp khác với cú pháp gitignore như thế nào?

tài liệu

Các Perforce cho P4IGNORE cho thấy bỏ qua của cơ bản và bỏ bỏ qua với các mẫu: http://www.perforce.com/perforce/r12.1/manuals/cmdref/env.P4IGNORE.html

Như tốt nhất mà tôi có thể nói, cực chẳng đả không hỗ trợ:

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

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

Có bất kỳ sự khác biệt khác trong bỏ qua xử lý tập tin?

+0

này đã quá hạn cho việc phát hành chẳng đả gần đây nhất. Theo như tôi có thể nói, Perforce hiện hỗ trợ đầy đủ cú pháp .gitignore. –

+0

Mặc dù bài báo nói "Cú pháp bỏ qua Git được hỗ trợ đầy đủ", tôi khá chắc chắn rằng ký tự đại diện ký tự đơn git, cho các mẫu như?, ??, vẫn không được hỗ trợ. Xem http://blog.andy.glew.ca/2016/09/perforce-git-ignore-syntax-is-fully.html –

Trả lời

3

Ngoài hai bạn đã liệt kê, tôi đã thấy rằng các ký tự đại diện sẽ không khớp với các thư mục, chỉ các tệp.

2

Ngoài ra, như xa như tôi có thể nói (cơ chế P4IGNORE là không đầy đủ tài liệu):

P4IGNORE dường như không có cách nào để thoát khỏi # (dấu băm, một nhân vật mà tôi thực sự muốn có trong P4IGNORE từ Emacs tạo file sao lưu có tên # filename #.

Dường như # trong P4IGNORE là một nhân vật bình luận, nhưng chỉ khi nhân vật đầu tiên trên một dòng.

vì vậy

*#* 

dường như bỏ qua tất cả các tệp có # tệp trong đó. tức là nó có vẻ tương đương với Perl regexp qr {^. #. $}.

Điều này hơi đáng sợ, vì nếu # là ký tự bình thường trong hầu hết các hệ thống, mẫu # sẽ là * theo sau là nhận xét # * và sẽ bỏ qua tất cả các tệp. Nhưng có vẻ như nó hoạt động.

(xử lý # Git là một chút đặc biệt là tốt.)

P4IGNORE dường như không để xử lý mẫu như

# matches any single character filename  
? 

một ký tự đơn

[seq] 

trận đấu bất kỳ ký tự trong bộ

v.v.,

để bỏ qua tên tệp bằng một chữ cái như 'a', tôi phải liệt kê tất cả 62 khả năng [a-zA-Z0-9]. (Tôi có thói quen tạo các tệp tmp như 'a', 'b' ...).

Tôi chưa búng xử lý thời gian của Perforce trong tên tệp.
Tôi biết chắc chắn rằng để bỏ qua một tên tập tin như '# more-crap' bạn phải làm

.#* 

ngoài

*#* 

nhưng điều này chỉ có thể bình thường chấm tập tin ẩn .

Tuy nhiên, đã có một số trường hợp một mô hình như

tmp-* 

đã không bắt 'tmp-foo.txt'

mà tôi cố định bằng cách thêm

tmp-*.* 

(Lưu ý : gần đây nhất tôi đã sử dụng bzr và hg, với regexps hoàn toàn mạnh mẽ, vì vậy có thể tìm kiếm nội dung mạnh mẽ hơn git cung cấp)

4

Tôi đã có một câu hỏi tương tự và sau đó tìm thấy điều này article nơi tôi đã học được rằng Perforce chấp nhận các tệp .gitignore.

Thực tế, bạn có thể chỉ định nhiều tên tệp trong P4IGNORE. Trên thực tế, P4IGNORE của tôi trông như thế này (đây là một tính năng mới trong 2015,2):

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

+1

Mặc dù bài viết cho biết "Cú pháp bỏ qua Git được hỗ trợ đầy đủ", tôi rất đồng ý rằng git ký tự đại diện ký tự duy nhất, cho các mẫu như?, ??, vẫn không được hỗ trợ. –

Các vấn đề liên quan