Version control 2个标签之间perforce分支的所有更改注释?(包括合并)
我们的Performce admin限制了“最大行”扫描,因此我的第一个运行以下内容的想法将不起作用:Version control 2个标签之间perforce分支的所有更改注释?(包括合并),version-control,merge,perforce,Version Control,Merge,Perforce,我们的Performce admin限制了“最大行”扫描,因此我的第一个运行以下内容的想法将不起作用: 所有更改,包括在特定标签时间1集成到分支中 所有更改,包括在特定的早期标记时间2集成到分支中 将时间1减去时间2的更改,以获得带有注释的新更改 有没有其他方法可以在不进行如此大规模的查询的情况下获得相同的结果(当perforce包含7年的历史并且-i触发了历史曙光的扫描时) 根据Gregs的评论,添加了以下评论: 基本上,重点是查看在2个标签(或者更常见的是,一些旧标签和现在的标签)之间的特定
Toby方法的问题是,对代码分支的大多数更改都是通过集成进行的,-我会包括这些更改,但正如所述,这会将查询分解到一定程度,因为Performce server上的负载,我们的管理员不允许它运行。因此,这就是为什么我正在寻找一种替代方法来获得相同的结果。不会“难道不是一个普通的标签差异做你想做的吗?”
- 从P4V,工具->差异。选择两个标签
- 在P4Win中,右键单击标签,选择2个标签中的差异文件
- 从命令行,p4 diff2//codeline/..@label1//codeline/..@label2
遗憾的是,在P4V或P4Win中,interchanges命令尚未公开。您的标签是否不仅仅是创建时的最新变更列表?例如,您是否确实需要在客户端工作区中记录特定文件?如果不需要,您可以非常轻松地比较与标签最接近的两个变更列表 假设与第一个标签日期最近的更改为23000,与第二个标签日期最近的更改为25000 p4更改//depot/PATHTOMYCODE/..@23000、@25000
将为您提供对这两个变更列表之间的代码路径的所有更改。如果您的标签是简单的变更列表,托比·艾伦的答案是最好的方法 如果标签更复杂,那么我认为您需要查看每个标签中的所有文件及其版本的差异,找到版本更改的变更列表 您可以通过以下方式获取文件和版本列表:
p4 fstat -Of //...@MyLabel
编辑:
考虑两个复杂的标签:
VERSION_A:
//depot/file_A.cpp#4
//depot/file_B.cpp#7
//depot/file_C.cpp#1
VERSION_B:
//depot/file_A.cpp#6
//depot/file_B.cpp#5
//depot/file_C.cpp#4
在本例中,标签不描述特定的变更列表,每个文件的标题变更可能不同
如果可以有这样的标签,那么可以对每个标签运行p4 fstat命令,然后找出差异。在本例中,文件A.cpp
更改了两次,文件C.cpp
更改了3次。文件B.cpp
在第二个标签中较旧,因此可以忽略它
因此,现在您需要查看涉及这些版本的更改:
file_A.cpp#5
file_A.cpp#6
file_C.cpp#2
file_C.cpp#3
file_C.cpp#4
这些更改可以通过p4 filelog检索,因此您希望运行如下操作:
p4 filelog file_A.cpp#6
p4 filelog file_C.cpp#4
然后,您需要删除早期版本的所有副本和历史记录
正如我所说,只有在标签凌乱的情况下,你才需要这个。如果有任何方法可以让你的标签代表变更列表,你应该使用托比·艾伦的答案。我看不到一个简单的答案,但我还有一些建议,也许可以帮助你指出正确的方向
很抱歉,我无法提供更具体的答案。我需要每个更改的注释,使用diff 2 labels方法不会打印每个更改的注释。我已编辑我的答案,为您提供另一种可能性