问题提出:同事误操作直接把几个分支全部checkout了,在windows客户端没法批量操作,因为数量太多导致卡死
解决思路:在p4服务器上用脚本执行revert操作
代码如下
#!/bin/bash
# $1是user,$2是workspace
p4 opened -u $1 | grep $2 | awk '{pos=index($0, "#"); print substr($0,0,pos-1)}' >revert_list_new.txt
awk -v work_space=$2 '{if(length($0) > 5){str = str" \""$0"\""}; if(length(str) > 850){ print "p4 revert -C "work_space""str >> "out_file_new.sh"; str=""}}' revert_list_new.txt
第一行是通过p4 opened命令查找出所有打开的文件,同时提取文件名,这里是以第一个#为截止符,比如“//depot/impforest_upgrate/client/cocos2d-x-3.7/build/cocos2d_js_tests.xcodeproj/xcshareddata/xcschemes/js-tests Mac.xcscheme#1 - edit default change (text) by designer@designer_6193”,这里注意文件名中可能有空格,提取的时候一定要准确,还可以这样,用awk的贪婪匹配
p4 opened -u $1 | grep $2 | awk '{if(match($0, "//depot.*?#")>0){print substr($0, RSTART, RLENGTH - 1)}}' >revert_list_new.txt
第二行是将找出的所有文件名,批量的放到revert命令中,注意,因为文件名可能有空格,

最低0.47元/天 解锁文章
8873

被折叠的 条评论
为什么被折叠?



