【问题标题】:Possible to branch in Perforce without creating a new folder?可以在不创建新文件夹的情况下在 Perforce 中分支吗?
【发布时间】:2016-01-13 08:54:58
【问题描述】:

是否可以在 Perforce 中以与 Git 类似的风格创建分支? IE。无需创建新文件夹。

我希望我的客户在处理磁盘上目录树的单个副本时透明地管理分支。

如果您只修改几个文件,客户端创建整个树的精确副本似乎非常浪费。在这方面我更喜欢 Git 的工作流程。

如果无法直接使用 Perforce,我很乐意转到 GitSwarm

有关信息,我正在运行 Perforce 版本 2015.1/1233444。

【问题讨论】:

    标签: branch perforce


    【解决方案1】:

    可能是的,但是对于系统的集中式版本,它涉及到一点“魔力”。基本上,分支部分不再需要涉及客户端。看看 p4 填充。这将在服务器上创建另一个文件夹,但不会在本地执行任何操作。然后你可以编辑你的客户端工作区来映射分支文件而不是主干文件,它只会重新同步你磁盘上的文件。

    现在,话虽如此,如果您想看看我们的 DVCS 版本的工作,那么您只需执行“p4 switch -c”,它将在本地创建一个新分支,将您的工作区切换到它(搁置任何正在进行的当前工作)然后离开。

    【讨论】:

      【解决方案2】:

      我的原始答案已被删除,因为我认为链接比重复内容更好。我的错。

      无论如何,我相信 Perforce Helix 中的 DVCS 功能正是您所追求的。在我在主题 (link here for reference) 中写的博客中,我解释了如何使用单个命令创建新的就地分支:

      p4 switch -c newBranchName
      

      这将创建一个名为“newBranchName”的新分支,并默认保存所有正在进行的现有工作。要发现您正在哪个分支上工作,您可以使用带有 list 参数的 switch 命令,如下所示:

      p4 switch -l
      

      这将向您显示这样的输出,星号表示您现在正在处理 newBranchName 分支。

      newBranchName * 
      main
      

      您可以根据需要来回切换,根据需要随时更改上下文。您正在进行的工作将继续保存在正在进行的每个分支上。当您准备好将您的工作合并回 main 并将其推送回服务器时,您可以使用以下命令序列:

      p4 switch main
      p4 merge --from newBranchName
      p4 resolve –as
      

      第一个命令切换回主分支,第二个命令将您的工作从新创建的分支合并到主分支,第三个命令自动解决任何潜在的冲突。如果存在无法自动合并的冲突,则可以使用常用命令来完成解决过程。

      或者,如果您更喜欢使用 Git,您可以通过我们的 Git Fusion 技术直接将它与我们的 Helix 版本控制引擎一起使用,或者直接将 Git 与我们新的 GitSwarm 技术一起使用。这是一个非常棒的选择(在我看来),因为它可以在 GitSwarm 和后端服务器之间自动和双向地镜像内容。这样,您就可以通过 GitSwarm(它本身基于 GitLab)获得 Git 的所有功能以及 Helix 其余部分的所有好东西。

      希望有帮助!

      【讨论】:

        【解决方案3】:

        如果您使用流(Perforce 的“托管”分支版本,而不是使用任意路径进行完全临时的文件间分支),这非常简单。正如 P4Gabe 所说,“switch -c”是本地服务器上的一次性选项。

        在共享服务器上它只是稍微复杂一点,因为您必须明确地执行“填充”(这是为了防止天真的用户在共享服务器上意外地多次分支大量文件),但它仍然只是一个只需几个步骤,您作为高级用户就可以轻松编写脚本:

        1. p4 流 -P(当前流)-t 开发(新流名称)
        2. p4 填充 -r -S(新流名称)
        3. p4 开关(新流名称)

        如果您对客户端视图的工作方式有很好的了解,也可以使用 ad hoc(“经典”)分支进行等效操作 - 使用填充创建新分支,修改客户端视图以将新分支映射到旧分支当前占用的命名空间,并同步。

        如果您尝试设计自己的解决方案,该解决方案与“switch”命令类似但不完全是“switch”命令,这篇关于“p4 switch”究竟做什么的博客文章可能会有所帮助:https://www.perforce.com/blog/150428/p4-switch-switching-it

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-08-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-19
          • 1970-01-01
          相关资源
          最近更新 更多