gpt4 book ai didi

perforce - 如何在 Perforce 中查看分支是否包含错误修复?

转载 作者:行者123 更新时间:2023-12-04 05:43:40 27 4
gpt4 key购买 nike

(我是 perforce 的新用户,但过去使用过许多其他源代码控制系统。)

我们使用更改列表来检查每个错误修复;更改列表注释包括错误 ID,因此很容易跟踪错误修复何时是 checkin 分店。

但是,我无法找到一种简单的方法来查找给定错误修复的所有分支 合并为 ,或查找已合并到给定分支的所有错误修复。

据我所知,perforce 不会跟踪更改列表已合并到的所有分支。据我了解,当在 perforce 中完成合并时,历史记录不会复制到目标分支中,因此目标中唯一的历史记录在合并完成的更改列表的注释中。

我错过了什么?

最佳答案

Perforce 跟踪文件的修订已被集成到何处,但它不会自动传播带有错误跟踪元数据的 checkin 注释。

给定特定分支上的变更列表,您可以通过要求 Perforce 集成变更列表来判断 Perforce 是否认为变更列表已被集成。 (我在更传统的源代码控制意义上使用“分支”来表示源代码树的特定分支,而不是在特定的 Perforce 意义上使用这两个源代码树之间的集成路径。)让我们说你一直在 //source/project/trunk/... 工作并且您有一个更改列表 @1234,您想检查它是否已集成到您的发布分支 //source/project/rel/... .创建一个映射客户端 //source/project/rel/...并执行:

$ p4 integrate -n //source/project/trunk/...@1234,1234 //source/project/rel/...

如果 Perforce 告诉您“已集成所有修订版。”,则更改列表 @1234 已集成,并且该错误修复应该在发布分支上可用。如果 Perforce 列出已更改的文件,则这些文件尚未集成。 (也可以集成更改列表中的某些文件而不集成其他文件,这可能会产生一些有趣的问题。)

这不能很好地扩展——您需要检查您关心的每个分支上的每个错误修复,尽管它确实有助于自动化。

您可以使用“不受支持”的 Perforce 命令 interchanges快速了解哪些变更列表尚未从一个分支集成到另一个分支中。 (在 Perforce 的说法中,“不受支持”的意思是“在下一个修订版中可能不会以相同的方式工作,但我们认为它可能有用,因此我们无论如何都会发布它”。)查看哪些更改列表尚未从我们的示例主干发布分支,执行:
$ p4 interchanges //source/project/trunk/... //source/project/rel/...
Change 1236 on 2010/10/10 by user@client 'Fixed some bug you don't care about'
Change 1235 on 2010/10/09 by user@other_client 'Fixed some other random bug'

在这个例子中,我没有列出 changelist @1234 因为它已经被集成到发布分支中。我在使用 interchanges 时遇到的一个问题是否会在未集成的更改后列出每个更新的修订,即使更新的修订本身已被集成,因此如果您正在为发布分支挑选修订,您可能会看到更改列表再次列出。我用 interchanges作为粗略了解我需要集成的内容的第一遍,然后查看 integrate更好地了解真正缺少的东西。

(Perforce 还支持类似的“作业”概念,允许将特定修复程序附加到特定更改列表,但我的组织不使用它们,所以我不知道它们的工作情况或它们是否在集成时自动传播。)

关于perforce - 如何在 Perforce 中查看分支是否包含错误修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4024381/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com