Perforce p4 changes命令参数失效及通配符支持问题咨询
问题原因分析
- -u参数通配符不支持:你使用的2021.1版本Perforce客户端,
p4 changes的-u参数确实不支持通配符匹配用户名。官方手册中提到的通配符支持是2022.2及以后版本才新增的功能,旧版本不兼容该语法,因此会报错Wildcards (*, %%x, ...) not allowed in 'zac*'。 - -m和-u参数失效、返回全量变更:由于
-u的语法错误,Perforce解析命令时直接忽略了-u和后续的-m参数,相当于只执行了p4 changes @2024/10/10:17:46:20 -s submitted //my/path/...,因此会返回所有符合路径和状态的变更,导致耗时久。
解决方案
方案1:适配2021.1旧版本客户端
先通过p4 users筛选出前缀匹配的用户,再将用户列表传给p4 changes。用Shell脚本实现的示例如下:
# 提取前缀为my_usert_nr_的用户,并用逗号分隔 USER_LIST=$(p4 users | grep "^my_usert_nr_" | awk '{print $1}' | paste -sd "," -) # 执行变更查询,指定用户列表和条数限制 p4 changes @2024/10/10:17:46:20 -s submitted -m 1 -u "$USER_LIST" //my/path/...
方案2:升级客户端版本
如果允许升级,将客户端更新至2022.2或更高版本,你原本的命令p4 changes @2024/10/10:17:46:20 -s submitted -m 1 -u "my_usert_nr_*" //my/path/...即可正常工作,新版本已支持-u参数的通配符匹配。
内容的提问来源于stack exchange,提问作者Cutton Eye
相关产品推荐
相关产品推荐

