已拆分为多个文件的文件的分支视图

时间:2010-03-23 22:12:09

标签: branch perforce integrate perforce-branch-spec

我在Perforce中有一个大型源文件,它已被拆分为分支中的几个较小文件。我想创建一个可以处理此问题的分支视图,但perforce(2009.1)只能查看多个文件中的最后一个。例如,我创建了:

p4 integrate //depot/original/huge_file.c //depot/new/huge_file.c

后来我把这个巨大的文件分成了小文件:

p4 integrate //depot/new/huge_file.c //depot/new/small_file_one.c
p4 integrate //depot/new/huge_file.c //depot/new/small_file_two.c
p4 integrate //depot/new/huge_file.c //depot/new/small_file_three.c

然后编辑其中的每一个(包括//depot/new/huge_file.c)并提交。

现在我对//depot/original/huge_file.c进行了更改,我希望将这些更改集成到//depot/new。如果我手动执行此操作,它可以正常工作:

p4 integrate //depot/original/huge_file.c //depot/new/huge_file.c
p4 integrate //depot/original/huge_file.c //depot/new/small_file_one.c
p4 integrate //depot/original/huge_file.c //depot/new/small_file_two.c
p4 integrate //depot/original/huge_file.c //depot/new/small_file_three.c

但是每次我整合时我都不想这样做 - 这种东西属于分支视图。

不幸的是,如果分支视图多次包含相同的源文件,则后续行将覆盖之前的行。如何创建这样的分支视图:

//depot/original/huge_file.c //depot/new/huge_file.c
//depot/original/huge_file.c //depot/new/small_file_one.c
//depot/original/huge_file.c //depot/new/small_file_two.c
//depot/original/huge_file.c //depot/new/small_file_three.c

当我使用此分支规范进行集成时,我只获得了small_file_three.c集成。

2 个答案:

答案 0 :(得分:3)

我打算建议您使用overlay mapping(强制处理规范的所有行的方法),但是快速阅读该页面就可以了解:

  

仅允许叠加映射   客户端视图,不使用   分支视图。

看起来你必须编写脚本。 This page有一些可能对你有用的信息(并强调这不能做到这一点,“Perforce不支持1:多文件映射。”)。

答案 1 :(得分:0)

只是感兴趣,但为什么呢?

为什么不在perforce中使用huge_file.c,然后更改构建系统以将其从三个较小的源控制源文件中组装出来。如果你想要真正的简单,甚至只需#include它们。

换句话说,我想知道你是否试图使用错误的工具来完成你想做的任务?