Perforce 如何创建专用远程Performance分支并推送到它?

Perforce 如何创建专用远程Performance分支并推送到它?,perforce,perforce-branch-spec,Perforce,Perforce Branch Spec,熟悉git,第一次使用perforce 我正在开发自己的功能,我不想将其推送到主线远程存储库 我需要类似git远程分支的东西,其中: 我可以提交我的更改。类似于git提交的git提交 我可以推送到不合并的远程专用分支。类似于git-push-remote-my-branch的东西 可以将主线中的更改合并到我的分支中。类似于git merge master的东西 我试图理解p4分支,但他们对p4integrate和p4branch之间的术语有很多混淆。此外,所有步骤都会导致p4 submit,它将

熟悉git,第一次使用perforce

我正在开发自己的功能,我不想将其推送到主线远程存储库

我需要类似git远程分支的东西,其中:

  • 我可以提交我的更改。类似于git提交的
    git提交

  • 我可以推送到不合并的远程专用分支。类似于git-push-remote-my-branch的东西

  • 可以将主线中的更改合并到我的分支中。类似于git merge master的东西

  • 我试图理解p4分支,但他们对
    p4integrate
    p4branch
    之间的术语有很多混淆。此外,所有步骤都会导致
    p4 submit
    ,它将提交到主线而不是我的分支。 是否有向远程私有分支提交的方法

    我在这里尝试了p4分支步骤:
    但这并没有导致提交到私有远程分支。

    Perforce有一种类似git的DVCS模式,但除非有令人信服的理由(如服务器上的连接有限或严重的资源限制),否则使用Perforce的典型方式是直接在中央服务器(远程存储库)上执行所有操作. <典型模型中的code>p4 submit本质上是
    git commit
    +
    git push
    ,因为您的“提交”直接发送到远程服务器

    因此,当您创建分支时,您也在服务器上这样做。Perforce中的分支只是从其他文件夹复制的文件夹(在这个简单的复制操作的基础上构建了大量的合并跟踪语义),因此要从
    //depot/main
    创建新的功能分支,您可以运行以下操作:

    p4 integ //depot/main/... //depot/features/road-rev/...
    p4 submit
    
    这将在仓库中创建一个新分支(作为名为
    features/road rev
    的文件夹),并将其同步到您的工作区,因此现在您只需执行以下操作:

    cd features/road-rev
    p4 add <new files>
    p4 edit <existing files>
    <etc>
    p4 submit
    
    如果以相反的方向运行integrate命令(即交换参数的顺序),则更改将以另一个方向合并。一旦你摸索出可以使用
    integrate
    任意将更改从一组文件推送到另一组文件的概念,分支就是定义不同的文件集(通常作为顶级文件夹)来表示不同分支的代码变体的一个非常简单的问题——这称为“文件间分支”

    如果管理员已将站点配置为使用,则工作流会有点不同(流是“托管分支”)这意味着感觉有点像您习惯的git分支——您一次只能在工作区中有一个流,您可以使用
    switch
    命令在它们之间切换,而不是定义一个将任意分支/文件映射到工作区任意部分的客户机视图)。在仓库中,不同的分支变体是不同的文件夹,它们仍然具有相同的底层表示形式,但上面有一大堆语法糖,这类表示形式隐藏了这种表示形式。要从流创建要素分支,请执行以下操作:

    p4 switch -c road-rev
    

    这类似于git checkout-b road rev

    您能否分享您尝试的具体步骤,以及为什么您认为这会导致您提交到主线而不是分支机构?也许你只是忽略了一些简单的事情?包括尽可能多的细节。同时,山姆的绝妙回答可能会给你提供你所需要的大部分背景。这确实解决了我的问题。我在网上找到的所有步骤都没有以这种方式解释,因此我从未将cd'ed放入分支目录。这个答案应该有助于人们建立分支。使用perforce时,我发现最不同的一点是,没有很多用户为自己创建分支,因此也没有太多关于它的在线内容。因为perforce的分支非常灵活,很多人有不同的首选工作流,所以人们在寻找“如何创建分支”最终会筛选出一系列的方法,并给人留下这样的印象,即它比需要的复杂得多。我解释的是最简单的开始方式;您最终可能会发现,您希望为每个分支设置客户端规范、创建分支规范以管理视图等,但“分支是仓库文件夹”的基本概念将保持不变。:)
    p4 switch -c road-rev