代码之家  ›  专栏  ›  技术社区  ›  Ian Ringrose

我如何看一个分支是否在性能上包含错误修复?

  •  8
  • Ian Ringrose  · 技术社区  · 15 年前

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

    我们使用更改列表来签入每个错误修复;更改列表注释包括错误ID,因此很容易跟踪错误修复的时间。 签入 一个分支。

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

    据我所知,Perfoce不跟踪变更列表合并到的所有分支。据我所知,在执行合并时,不会将历史记录复制到目标分支中,因此合并所执行的更改列表注释中目标中的唯一历史记录。

    我错过了什么?

    1 回复  |  直到 15 年前
        1
  •  15
  •   Commodore Jaeger    15 年前

    性能跟踪文件的修订版已集成的位置,但它不会自动将签入注释与错误跟踪元数据一起传播。

    给定一个特定分支上的变更列表,您可以通过要求Perfonce集成变更列表来判断Perfonce是否认为已集成变更列表。(在更传统的源代码管理意义上,我使用“分支”来表示源代码树的一个特定分支,而不是在特定的性能意义上表示这两个源代码树之间的集成路径。)假设您一直在研究 //source/project/trunk/... 您有一个变更列表@1234,您想检查它是否已集成到您的发布分支中。 //source/project/rel/... . 创建映射的客户端 //源/project/rel/… 并执行:

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

    如果performce告诉您“所有版本都已集成”,那么changelist@1234已经集成,并且应该可以在发布分支上使用bugfix。如果Perfoce列出了已更改的文件,则这些文件尚未集成。(变更列表中的某些文件也可能被集成,而不是其他文件,这可能会导致一些有趣的问题。)

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

    您可以使用“unsupported”性能命令 interchanges 快速了解哪些变更列表没有从一个分支集成到另一个分支。(在performance术语中,“unsupported”表示“在下一个版本中可能不起作用,但我们认为它可能有用,因此无论如何我们都会释放它”)要查看哪些变更列表尚未从示例主干集成到释放分支,请执行:

    $ 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'
    

    立交桥 它是否会列出未经集成的更改之后的每个新修订,即使新修订本身已经集成,所以如果您为发布分支挑选修订,您可能会看到更改列表再次列出。我用 立交桥 作为第一步,先大致了解一下我需要整合什么,然后再看看 integrate 更好地了解真正缺少的东西。

    (Performance还支持类似的“作业”概念,即允许将特定的修复附加到特定的变更列表,但我的组织不使用它们,因此我不知道它们的工作情况如何,也不知道它们是否在集成时自动传播。)