如何自动将更改集成到其他分支

时间:2011-06-16 14:40:23

标签: perforce

我有一个自动集成触发器设置,可以在同一产品中的大约15个分支之间进行集成。我的仓库设置如

//Product/dev/main/...
//Product/dev/v1.0/...
//Product/releases/v1.0.0/...
//Product/releases/v1.1.0/...

等。这很容易整合。我的触发器在这些库路径上进行搜索和替换,以便从一个路径集成到另一个路径。它通过Jira中的子任务获取这些路径。现在其他项目也想要同样的东西。问题不是所有项目都遵循相同的结构。有些更像是

//ProductB/SubProject/dev/main/...
//ProductB/SubProject/dev/v1.0/...
//ProductB/releases/v1.0.0/...
//ProductB/releases/v1.1.0/...

所以我不能使用相同的搜索和替换方法,因为它可能在项目之间有所不同。我希望有人可能会使用我可以使用的集成技巧。 Branchspecs不吸引我,因为我们有超过18种产品,有些产品有超过15个分支机构。因此,如果我为产品创建一个新分支,我必须创建16个分支规范。可行,但痛苦。

2 个答案:

答案 0 :(得分:1)

如果我理解正确,所有//productB个分支都有一个共同的祖先,对吧? 我认为你可以通过编程方式调用p4 filelog -i并解析输出以查看它所属的位置。

  

-i标志包括继承的文件历史记录。如果文件是由。创建的           分支(使用'p4 integrate'),filelog列出了修订版           文件的祖先直到导致指定的分支点           修订。通过重命名(使用'p4 move')继承的文件历史记录是           无论是否指定了-i,都会始终显示。

答案 1 :(得分:0)

捕获此高级别关系(合并源和目标)必须在分支规范或某种配置文件中捕获。

今年晚些时候新的功能可用后,两个代码行之间的父/子关系将直接在Perforce中捕获,使自动合并脚本更容易编写。