在Perforce中,我该如何像Git一样在分支之间切换?

5

大家好!

在Git中,我有两个分支,分别为Main和Dev。如果在Main分支上出现问题,而我正在Dev上工作,我可以切换到Main分支解决这个问题,然后再切回Dev分支继续之前的工作。然而,在Perforce中,我必须创建一个新的工作区并将主分支中的项目下载到该工作区中,然后解决问题。

我能否像Git一样在Perforce中做到这一点?

2个回答

5

使用普通的Perforce是不可能做到这一点的。

Perforce Streams 可以实现这一点,详见这里。但您需要一个 Stream 仓库,这是您的 Perforce IT 团队需要协助的事情。有了 Stream 仓库,您的 feature 分支将各自成为一个流,您可以在一个工作区中切换它们。


1
这在 Perforce Streams 之前不可能的部分原因是,在经典的非流 Perforce 中,仓库路径可以指向任意不兼容的分支。例如,以下两个路径可能是等效/可互换的://depot/foo/Main/src/...//depot/foo/Dev/src/...。而以下两个路径可能不是://depot/foo/Main/src/...//depot/foo/Dev/src/a/b/c/...。只有在 Perforce Streams 中,Perforce 才能真正理解“分支”是什么 - 在此之前,任何给定的路径都是一个分支。 - sferencik

1
如果您有一个名为 //depot/Main 的流和一个名为 //depot/Dev 的流,且您想将工作区从 Main 切换到 Dev,则需要执行以下操作:
p4 switch Dev

那就是全部内容了——现在Dev流在您的工作区中,您可以对其进行操作。有关“switch”命令确切作用的更多信息,请参见此博客文章: https://www.perforce.com/blog/150428/p4-switch-switching-it 如果您正在使用手动定义客户端视图的“classic”存储库,则有几种不同的方法可以在多个分支中工作:
  1. 每个分支一个工作区。
  2. 将多个分支映射到一个工作区。
  3. 切换现有的工作区映射以指向不同的分支。
(1)和(2)都需要您在磁盘上拥有每个分支的副本——如果您经常在分支之间移动,或者想要能够同时在多个分支中运行构建/测试,则这可能很有用。缺点是您会使用更多的磁盘空间,并且可能会进行一些冗余的文件传输。
(3)本质上就是“p4 switch”所做的事情;如果您没有使用流来管理所有内容,则只需手动执行不同的部分(根据需要处理打开的文件,更改客户端视图,同步)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接