2

我在 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。

4

2 回答 2

3

我打算建议您使用覆盖映射(一种强制处理规范的所有行的方法),但是快速浏览该页面会将 kibosh 放在上面:

覆盖映射仅允许在客户端视图上使用,并且不适用于分支视图。

看起来你必须编写脚本。 此页面包含更多可能对您有用的信息(并强调无法做到这一点,“Perforce 不支持 1:many 文件映射。”)。

于 2010-03-24T14:40:29.463 回答
0

只是作为一个有趣的问题,但为什么呢?

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

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

于 2010-03-24T21:27:58.883 回答