Perforce:查找分支的源更改列表

Cri*_*scu 13 version-control perforce branching-and-merging

精简版:

在P4中分支后,如何找到分支的"源"更改列表?

长版:

假设我的项目主要分支在

//project/main/...
Run Code Online (Sandbox Code Playgroud)

这里提交的最新更改列表是@ 123,当我决定为1.0版本创建一个分支时

//project/1.0/...
Run Code Online (Sandbox Code Playgroud)

从P4V开始,创建一个新的更改列表(比如@ 130),解决并提交.

在CLI中,它看起来像这样:

p4 integrate -c 123 -o //project/main/... //project/1.0/...
p4 submit
Run Code Online (Sandbox Code Playgroud)

稍后,我查看下面的更改列表//project/1.0,并查看包含大量分支文件的@ 130更改列表.我怎样才能找到变更清单号.这最初来自(即@ 123)?

Jon*_*ric 8

p4 changes 将显示已提交的更改列表的列表,可选择过滤到特定路径.

p4 changes //project/main/...
Change 123 ... 'Very last change.'
Change 122 ... 'Next-to-last change.'
Change 100 ... 'Only two changes to go...'
...
Run Code Online (Sandbox Code Playgroud)

这并不奇怪,但是,正如您所发现的,p4 changes当您在一次更改中集成所有这些更改时,它们的帮助就会减少:

p4 changes //project/1.0/...
Change 130 ... 'Integrated everything from main.'
Run Code Online (Sandbox Code Playgroud)

诀窍是使用-i选项其中包括集成到指定的文件的任何修改列表.

p4 changes -i //project/1.0/...
Change 130 ... 'Integrated everything from main.'
Change 123 ... 'Very last change.'
Change 122 ... 'Next-to-last change.'
Change 100 ... 'Only two changes to go...'
...
Run Code Online (Sandbox Code Playgroud)

要获得您想要的内容(123),您需要编写一个过滤输出的脚本,p4 changes -i //project/1.0/...以删除列出的任何更改p4 changes //project/1.0/...(然后进行最近的剩余更改).

(在探索时,我经常发现该-m max选项很有用.这限制了最近更新的'max'.这有助于在有很多变化时输出不会流出屏幕.)