DRCS(git,bzr,merc)是否具有像perforce一样的"待定变更集"?

Edw*_*nge 2 git mercurial dvcs bazaar

我们已经完成了工作,而且有一件事似乎与工作流程相关,而且还有待更改.

我可以创建一个新的挂起变更集,为其分配更改,为其分配jira票证等等...我可以将文件搁置在那里并在其他变更集中进行其他更改.然后,当它在签入时,我可以通过简单地提供变更集ID来推送这些变更.

任何主要的分布式版本控制系统都提供这样的东西吗?我看到大多数都提供了搁架的变种,但待定的变更集?

编辑 - 一个澄清的例子:

我有一个带文件AZ的项目.我在更改我正在进行的源更改之前做了更新.我注意到我还没有准备采用一个改变,所以我通过修改A和B来创建一个hack.然后我对文件C,D和E进行更改.

我只想检查后三个,我想附上我正在回复的jira票.在p4v中,这就像创建一个新的"挂起的变更集"并检查我想要的文件以及票号一样简单.然后我提交我的待定变更集.然后,我可以保持我的黑客为下一次运行或恢复它.

Ry4*_*ase 8

Mercurial有两个与此非常相似的功能.第一个和更旧的一个被称为Mercurial Queues,它们基于Quilt,但被集成到Mercurial中.那本书的章节值得一读,但它们基本上让你有一系列的重叠变换集,可以随意推送,弹出和编辑.它们与搁置(git或Mercurial)的不同之处在于它们可以被推/拉,并且实际上可以在一个单独的特定于队列的仓库中进行版本控制.

沿着这些方向的第二个更新的特征是阶段特征.它跟踪每个变更集,其可以是相public,draftsecret.维基页面有完整的细节,但基本上public是你推到另一个回购draft的任何东西,是你还没有被推动的东西(因此可以编辑而不用担心打破人们的历史),并且private是一个不会改变的当你被推hg push.您可以使用阶段沿histeditcommit --amend甚至水银队列,以确保直到你满意的一个变更不会离开你的机器.