背景
我在 Perforce 中有一个“主线”仓库和一个“测试版”分支(使用简单的分支:没有流等)。
我想将最新代码从“主线”合并到我的“测试版”分支。我每天必须这样做一次,每天大约有 100 多个提交/提交到“主线分支”。
通常,我会这样做:
p4 integ //prod/mainline/... //prod/beta/...
cd $(p4 where //prod/beta/... | cut -d ' ' -f3 | sed 's/\.\.\.$//g')
p4 resolve ./...
问题
但是,我们有一个恼人的每小时构建过程,它会更新各种 Makefile、构建脚本等中的版本号;dummy_user
更新版本/分支编号,并由我们的构建服务器使用“虚拟”帐户(即)签入 Perforce 。这是在所有分支上完成的,导致任何合并操作都有任意冲突。
这个版本号提交现在阻止我的p4 integ
/p4 resolve
操作干净地完成,我必须手动合并所有受“版本号更新操作”影响的文件。我只想手动合并实际的代码更改,而不是这个版本号的废话。
问题
有没有办法获得一组尚未出现在分支中p4 integ
的更改列表(但出现在主/另一个分支中) ,不包括用户?我总是可以做类似的事情:
for i in $(p4 changes //prod/mainline/... | grep -v dummy_user | cut -d ' ' -f2)
do
p4 integ //prod/mainline/...@${i},${i} //prod/beta/...
done
但是,我没有自动获取所有更改列表的列表:
- 存在于
mainline
... - 但尚未合并/集成到
beta
... - 并且不是由
dummy_user
.
我怎样才能做到这一点?