在Perforce中,如何在Git这样的分支之间切换?

在Perforce中,如何在Git这样的分支之间切换?,git,perforce,Git,Perforce,全部 使用Git,我得到了两个分支,分别称为Main和Dev。如果在主分支上出现问题,并且我正在开发,我可以切换到主分支来解决该问题,然后切换回开发,继续我以前的工作。然而,使用Preforce,我必须创建一个新的工作区,并将项目表单main branch下载到该工作区中,然后解决问题 我可以用Perforce做像Git一样的事情吗?这在常规Perforce中是不可能的 Perforce Streams使这成为可能;看见但您必须有一个Stream depot,这是您的Performce IT团队

全部

使用Git,我得到了两个分支,分别称为Main和Dev。如果在主分支上出现问题,并且我正在开发,我可以切换到主分支来解决该问题,然后切换回开发,继续我以前的工作。然而,使用Preforce,我必须创建一个新的工作区,并将项目表单main branch下载到该工作区中,然后解决问题


我可以用Perforce做像Git一样的事情吗?

这在常规Perforce中是不可能的


Perforce Streams使这成为可能;看见但您必须有一个Stream depot,这是您的Performce IT团队需要帮助的。有了Stream depot,您的功能分支将变成一个流,您可以在一个工作区中在它们之间切换。

如果您有一个//depot/Main Stream和一个//depot/Dev Stream,并且您希望将工作区从Main切换到Dev,您可以:

p4 switch Dev
这就是它的全部内容——现在Dev流在您的工作区中,您可以处理它了。有关“switch”命令的具体功能,请参阅本博客文章:

如果您使用带有手动定义的客户端视图的“经典”仓库,则有几种不同的方法可以在多个分支中工作:

  • 每个分支一个工作区
  • 将多个分支映射到一个工作区中
  • 切换现有工作区映射以指向不同的分支
  • (1)和(2)都要求您在磁盘上拥有每个分支的副本——如果您经常在分支之间来回移动,或者希望能够在多个分支中同时运行构建/测试,这将非常有用。缺点是使用了更多的磁盘空间,并且可能会进行一些冗余的文件传输


    (3) 本质上就是“p4开关”的功能;如果不使用streams来管理所有内容(视情况处理打开的文件、更改客户端视图、同步),则只需手动执行不同部分。

    在Perforce streams之前无法执行此操作的部分原因是,在经典的非stream Perforce中,仓库路径可以指向任意的不兼容分支。例如,以下两种路径可能等效/可互换:
    //depot/foo/Main/src/…
    //depot/foo/Dev/src/…
    。而以下两个可能不是:
    //depot/foo/Main/src/…
    //depot/foo/Dev/src/a/b/c/…
    。直到Perforce Streams,Perforce才真正理解“分支”是什么——在此之前,任何给定的路径都是分支。