Nei*_*ell 7 mercurial branch dvcs
我是一个Subversion用户,我想我现在已经全身心投入了.所以当然现在我们正在考虑转向Mercurial,我需要重新开始.
在我们的单一存储库,我们有典型branches
,tags
,trunk
布局.当我想创建一个功能分支时我:
trunk
到branches/Features/[FeatureName]
.branches/Features/[FeatureName]
.trunk
,解决冲突和提交.trunk
,再合并一次,然后将功能分支"重新整合"为主干.(请注意,此过程已简化,因为它没有考虑发布候选分支等).
所以我对如何在Mercurial中实现相同的要求(即功能分支而不是在主干上工作)有疑问:
在Mercurial中,仍然是存储库中的分支,还是一个全新的本地存储库?
颠覆工作方式的等价物将是具有多个头部的存储库.然而,这不是惯用的做事方式.通常,在给定的存储库中只有一个头,因此每个分支都有单独的存储库.
如果我们每个都有一个整个存储库的副本,这是否意味着我们都拥有彼此各个功能分支的副本(这是很多数据传输)?
是的,如果您查看本地存储库头部的历史记录,那么您将能够看到所有已合并的功能分支.但是,mercurial存储库非常节省空间.例如,我已经完成了hg clone https://www.mercurial-scm.org/repo/hg
获取mercurial本身的源代码,并且在NTFS文件系统上只有34.3 MB(与源代码下载相比,这是1.8 MB).如果您的文件系统支持硬链接,Mercurial也将使用硬链接,因此如果将存储库克隆到同一磁盘上的另一个位置,则几乎没有开销.
我知道Mercurial是一个DCVS,但这是否意味着我们直接推送/拉取更改,而不是通过服务器上的对等存储库?
一种工作方式确实是让每个开发人员公开一个公共存储库,在其中推送他自己的更改.然后所有其他开发人员可以拉出他们想要的东
但是,通常您将拥有一个或多个"祝福"存储库,其中集成了所有更改.然后,所有开发人员只需要从受祝福的存储库中提取.即使你没有明确地拥有这样一个受祝福的存储库,我想人们会像这样自动组织起来,例如所有来自首席开发人员的人.
史蒂夫·洛什(Steve Losh)关于上面关于mercurial分支的文章太棒了.我还得到了一些关于分支的解释以及DAG如何在我几个月前给出的关于幻灯片分享的演示中的工作.相关幻灯片从幻灯片#43开始.
我认为理解所有提交到同一存储库的存储都存储在DAG(有向无环图)中,并带有一些简单的规则,这有助于揭开正在发生的事情的神秘面纱.
命名分支实际上只是提交中的元数据标签,但实际上与将某些elses工作合并到存储库时发生的匿名分支没有任何不同,或者如果您返回到早期版本然后在那里进行提交一个新的头(你可以稍后合并).
归档时间: |
|
查看次数: |
598 次 |
最近记录: |