针对特定文件扩展名的p4触发器不起作用



我想在提交*.cpp文件时运行一个脚本。但当我更改p4触发器以指定文件扩展名时,它停止了工作?

该命令有效:

bugcheck1 change-submit //PlayPen/... /mnt/scripts/jenkins-trigger.sh

此命令无效:

bugcheck1 change-submit //PlayPen/*.cpp /mnt/scripts/jenkins-trigger.sh

*运算符不匹配任何包含/的路径段——换句话说,它只在单个目录级别匹配。

这意味着路径//PlayPen/*.cpp将仅与//PlayPen仓库根目录下的.cpp文件匹配:

//PlayPen/*.cpp
//PlayPen/foo.cpp     -> matches  ('*' = 'foo')
//PlayPen/bar/foo.cpp -> does not match
//Widget/foo.cpp      -> does not match

如果要匹配仓库中任何位置的所有.cpp文件,则需要...通配符:

//PlayPen/....cpp
//PlayPen/foo.cpp     -> matches  ('...' = 'foo')
//PlayPen/bar/foo.cpp -> matches  ('...' = 'bar/foo')
//Widget/foo.cpp      -> does not match

如果您想匹配任何仓库中任何位置的所有.cpp文件,请删除PlayPen部分:

//....cpp
//PlayPen/foo.cpp     -> matches  ('...' = 'PlayPen/foo')
//PlayPen/bar/foo.cpp -> matches  ('...' = 'PlayPen/bar/foo')
//Widget/foo.cpp      -> matches  ('...' = 'Widget/foo')

要查看哪些模式与哪些文件匹配,请尝试将它们与p4 files命令一起使用:

p4 files //PlayPen/*.cpp
p4 files //PlayPen/....cpp

最新更新