Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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
Git DVCS-标记多个修订_Git_Version Control_Mercurial_Merge_Dvcs - Fatal编程技术网

Git DVCS-标记多个修订

Git DVCS-标记多个修订,git,version-control,mercurial,merge,dvcs,Git,Version Control,Mercurial,Merge,Dvcs,我想到了这样的发布工作流: -一个分支是主干分支-它可能具有用于功能和其他目的的分支。 -第二个分支是稳定的,它代表生产版本。 -trunk的修订版-被标记为发布版本。如果我想发布-我必须为发布版本指定一个或多个变更集,然后将它们合并到稳定版,此多次合并的最终版本将是一个新的稳定版。 有一个选项-使用一些外部工具跟踪版本修订所属的版本,或者在提交消息中写入此信息-但我不喜欢它们,因为我希望将此信息存储在DVCS中,而不依赖任何外部软件进行发布管理 所以我的问题是: -这是一个好方案吗? -对于任

我想到了这样的发布工作流:
-一个分支是
主干
分支-它可能具有用于功能和其他目的的分支。
-第二个分支是稳定的,它代表生产版本。
-
trunk的修订版
-被标记为发布版本。如果我想发布-我必须为发布版本指定一个或多个变更集,然后将它们合并到
稳定版
,此多次合并的最终版本将是一个新的
稳定版。

有一个选项-使用一些外部工具跟踪版本修订所属的版本,或者在提交消息中写入此信息-但我不喜欢它们,因为我希望将此信息存储在DVCS中,而不依赖任何外部软件进行发布管理

所以我的问题是:
-这是一个好方案吗?

-对于任何流行的DVSC,是否有这样的工具,用于修订的批量标记?

在Mercurial中,这是相对容易做到的,在Mercurial中,一个命名分支可以有多个头部,但在git或Mercurial中,你最好使用一个名为“RelaseSePrimeAdvor”的分支,将你认为是发布的任何特征分支合并在一起。然后TPTB将“release_candidate”合并为“stable”或“not”,如果不合并,您只需创建一个新的release candidate,其中包含被拒绝候选项的可接受子集——您始终可以创建一个新分支,并仅将您想要的内容合并到其中

这是个好计划吗

不需要。在无用实体中单独的“稳定”分支只会带来额外的麻烦(至少在Mercurial和Git中是这样),在“主干”中标记将起作用

是否有这样的工具用于任何流行的DVC,用于批量标记修订


没有(至少我不知道这样的工具)。但是(对于Mercurial,f.e.)根本不需要它:有了一些revset的魔力,你总是可以“追踪回购/修订版中的哪个版本/标签”

“批量标签”?您的意思是要标记作为发布一部分的所有修订吗?Git不是这样做的。他们的目的是标记一个单独的版本,它代表了该版本之前的所有历史。此外,您描述的工作流程听起来也很相似。不同意无用的
稳定的
-如果生产部门需要从
主干
(代表开发过程的历史)中获取一些非连续的非最后的历史变更集,该怎么办?因此,我需要将它们合并到主干中,并进行新的提交,这极有可能与当前的开发状态无关,而当前的开发状态可能已经脱离了发布所代表的状态。@GillBates-您对PROD的需求非常奇特,与现实生活无关,但无论如何,这是额外的匿名分支(在开发分支中重新设置|嫁接变更集)不是什么大问题