此外,据我所知(P4IGNORE 机制的文档不完整):
P4IGNORE 似乎没有办法转义#(井号,一个我真的想在 P4IGNORE 中使用的字符,因为 EMACS 创建了名为#filename# 的备份文件。
看起来 P4IGNORE 中的 # 是一个注释字符,但前提是一行的第一个字符。
所以
*#*
似乎忽略了所有带有 # 的文件。即它似乎相当于 Perl 正则表达式 qr{^. #. $}。
这有点吓人,因为如果 # 是大多数系统中的普通注释字符,那么模式#将是一个 * 后跟一个注释 #*,并且会忽略所有文件。但它似乎工作。
(Git 对 # 的处理也有点特殊。)
P4IGNORE 似乎无法处理诸如
# matches any single character filename
?
单个字符
[seq]
匹配集合中的任何字符
ETC。,
所以要忽略像“a”这样的单个字母的文件名,我必须列出所有 62 种可能性 [a-zA-Z0-9]。(我有创建 'a'、'b' 之类的 tmp 文件的习惯……)。
我还没有理解 Perforce 对文件名中句点的处理。
我确定要忽略像 '.#more-crap' 这样的文件名,你必须这样做
.#*
此外
*#*
但这可能只是普通的点文件隐藏。
但是,在某些情况下,像这样的模式
tmp-*
没有捕捉到“tmp-foo.txt”
我通过添加修复
tmp-*.*
(注意:最近我一直在使用 bzr 和 hg,它们具有完全强大的正则表达式,所以可能正在寻找比 git 提供的更强大的东西)