子目录中的 Perforce 分支

Perforce branch in subdirectory

作为 perforce 的新用户,我不得不做出一个决定,这很可能是错误的。

我的客户有以下仓库结构:

//depot/dir_a
//depot/dir_b  etc.

dir_a和dir_b描述没有分支,它们是纯目录。整个项目只是填充 //depot.

我必须从中创建一个分支,并尝试设置类似 SVN 或 git 标准树的东西:

//depot/master/dir_a
//depot/master/dir_b

//depot/branches/1.0/dir_a
//depot/branches/1.0/dir_b

当时我不允许更改旧结构,只能添加一些东西。所以,我一直在结束

//depot/dir_a
//depot/dir_b

//depot/branches/1.0/dir_a
//depot/branches/1.0/dir_b

现在,我认识到这里有一些陷阱:例如,在 //depot 和 //depot/branches/1.0 之间合并似乎很重要(后者是一个子目录,可能是某种'part' 非正式的预先存在的 'root' 分支)。

我该如何解决这个问题(前提是我现在可以创建 'master' 并将旧内容移入其中)?

如果您还没有开始创建 "master" 和 "branches" 等,我会这样做:

p4 integ //depot/... //depot/master/...
p4 delete //depot/...
p4 submit

现在一切都在 "master" 中,您可以继续前进(只需忽略新目录结构之外的所有已删除文件)。

如果您已经将东西放入 "master" 和 "branches" 中,那么您将不得不解决它们,这并不难,但需要一点思考,因此您不必' 最终创建 "master/master" 等。类似于:

p4 delete //depot/...
p4 revert //depot/master/... //depot/branches/...
p4 integ //depot/... //depot/master/...
p4 revert //depot/master/master/... //depot/master/branches/...
p4 submit

在任何情况下,您都希望将您的工作移至 "master" 目录,因为正如您所指出的那样,在 "master" 和 "branches/whatever" 之间进行合并比合并更容易是从根合并到它下面的东西。