Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control Mercurial-like命名分支机构在Perforce的体验_Version Control_Mercurial_Perforce_Branching And Merging - Fatal编程技术网

Version control Mercurial-like命名分支机构在Perforce的体验

Version control Mercurial-like命名分支机构在Perforce的体验,version-control,mercurial,perforce,branching-and-merging,Version Control,Mercurial,Perforce,Branching And Merging,我是Perforce的新手,发现很难遵循它的工作流程 我以前使用过Mercurial(不是以任何先进的方式),但我最缺乏的是命名分支的概念 让我解释一下我想做什么: 我得到了所有文件的最新版本,并想做一个新的功能/故事/任务 我创建一个分支,比如“功能3021” I代码,保存此分支中的更改(hg提交) 我可以将更改保存到中央服务器(hg push) 当我完成编码时,我将“Feature3021”中的更改与主分支(默认、主分支等)合并,然后主分支拥有我编写的代码 我可以关闭命名的分支(“功能30

我是Perforce的新手,发现很难遵循它的工作流程

我以前使用过Mercurial(不是以任何先进的方式),但我最缺乏的是命名分支的概念

让我解释一下我想做什么:

  • 我得到了所有文件的最新版本,并想做一个新的功能/故事/任务
  • 我创建一个分支,比如“功能3021”
  • I代码,保存此分支中的更改(hg提交)
  • 我可以将更改保存到中央服务器(hg push)
  • 当我完成编码时,我将“Feature3021”中的更改与主分支(默认、主分支等)合并,然后主分支拥有我编写的代码
  • 我可以关闭命名的分支(“功能3021”),这样就不可能进行进一步的提交
在Perforce中,我不需要这种精确的行为,但需要类似的东西。我知道Perforce是集中式的,所以commit-push步骤可能是其中之一,但这是一个小问题

我所关心的是能够在任何时候将我的工作保存在版本控制中,即使它还没有100%准备好——可能是保存到另一个分支。我还希望其他用户能够(从这个不同的分支)获取我的代码,但前提是他们需要这样做——只要我不将更改与默认分支合并,默认分支就不会受到影响


可能吗?我正在使用Server 2012.2

您可以升级到Server 2013.1或更高版本吗?这里有一个很棒的特性,叫做任务流

以下是一些参考资料:


类似的性能流程为:

  • 在某些路径上维护主线“分支”,例如
    //depot/default
  • 要创建要素分支,
    //depot/default
    集成到
    //depot/feature-3021
  • //depot/feature-3021下工作并提交
  • 准备好合并后,将
    //depot/feature-3021
    集成到
    //depot/default
关于在使用分支后关闭分支,我可以考虑几个选项。您可以更改权限,也可以将其删除。删除操作始终可以恢复

还请注意,路径不需要位于同一层次结构中。更合理的分支策略可能会使用这样的路径

主线:
//车辆段/默认值


开发者分支:
//depot/dev/${user}/${feature}

谢谢你的回答,我喜欢它。但我只是我公司的一个普通开发人员,我不知道我有什么特权。。。我是否正确理解必须在中央服务器上创建功能库?或者我可以从我的机器上创建它吗@KalamarObliwy这取决于仓库内的目录结构和相关的权限,但是在此流程中您没有创建新的仓库。您只能在其他位置创建新文件。这就是Perforce中分支的实现方式。