我在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集成。
答案 0 :(得分:3)
我打算建议您使用overlay mapping(强制处理规范的所有行的方法),但是快速阅读该页面就可以了解:
仅允许叠加映射 客户端视图,不使用 分支视图。
看起来你必须编写脚本。 This page有一些可能对你有用的信息(并强调这不能做到这一点,“Perforce不支持1:多文件映射。”)。
答案 1 :(得分:0)
只是感兴趣,但为什么呢?
为什么不在perforce中使用huge_file.c,然后更改构建系统以将其从三个较小的源控制源文件中组装出来。如果你想要真正的简单,甚至只需#include它们。
换句话说,我想知道你是否试图使用错误的工具来完成你想做的任务?