2

我正在尝试创建一个脚本(如果可能),它可以从 perforce 获取特定的 CL,并列出它已集成到的流或分支以及该集成的 CL 以及其他一些细节(如签入的用户或文件历史)

我一直在查看一些 P4 文档,但还没有找到任何东西......所以想知道是否有人在这方面有经验。

我的最终目标是创建一个网站(我以前有一家公司),它可以很好地显示这一点,但我想先启动并运行脚本。

示例:我在脚本中输入 CL 12345,然后我得到一个列表,其中包含更改所在的每个流,并且更改的 CL 已集成到该分支中。

我知道修订图可以做到这一点,但我想要一些非技术人员可以使用的东西。

谢谢!

4

1 回答 1

1

您要基于脚本的命令是p4 filelog. filelog在特定修订版上运行会告诉您它是从哪些修订版集成到哪些修订版中的:

C:\Perforce\test>p4 filelog @=117
//stream/main/mob/nextproject/custom/configuration
... #2 change 117 integrate on 2019/02/22 by Samwise@Samwise-dvcs-1509687817 (text) 'tada'
... ... merge from //stream/main/mob/project/configuration#2

您可以递归地执行此操作:

C:\Perforce\test>p4 filelog //stream/main/mob/project/configuration#=2
//stream/main/mob/project/configuration
... #2 change 116 edit on 2019/02/22 by Samwise@Samwise-dvcs-1509687817 (text) 'foo'
... ... merge into //stream/main/mob/nextproject/custom/configuration#2

Revision Graph 在单个文件上执行此操作,这非常简单。除非您做出一些简化的假设,否则在变更列表的基础上执行此操作有点棘手——变更列表可能会被部分集成(即,并非所有修订都被集成),但如果您只是假设这永远不会发生,然后您可以构建一堆修订图并通过通用更改列表将它们合并在一起。

于 2019-07-24T14:57:49.453 回答