因为我想区分自7或10天前我所做的所有更改,而没有看到其他团队成员的更改,所以我保留了一个克隆,说
c:\dev\proj1
Run Code Online (Sandbox Code Playgroud)
然后我保留另一个克隆
c:\dev\proj2
Run Code Online (Sandbox Code Playgroud)
所以我可以更改代码proj1,然后在另一个shell中,从中提取代码,并与其他团队成员合并,并运行测试.然后10天之后,我仍然可以将我和其他人的所有代码区分开来,然后进入shell proj1并做一个hg diff或者hg vdiff.
我认为这也可以通过使用分支来完成.这样的2个克隆是否与2个分支完全相同?一个优于其他方法的任何优势?
简短的回答是:是的.
合并时,Mercurial不关心变更集的来源.从这个意义上说,当合并更改时,分支和克隆的工作方式同样出色.
更好:您描述的工作流程正是Mercurial书籍第3章中的策略.
分支机构的唯一优势是它们有一个名称,因此您没有更好的合并权利.如果你想将这些proj2变化分开,同时仍然从proj1推送它们,给它们一个真正的分支.再次,在功能上,它们是相同的.
是的,这是DVCS的特征,而不是唯一的Mercurial.