如何备份本地Mercurial存储库并使用rebase?
我的公司正在从Subversion转向Mercurial。 其中一个原因是汞,我们希望能够更独立地工作。
我们期待将rebasing作为我们从主存储库进行更新的主要方式,至少在一开始就是将历史记录保存在一行中,从而使从Subversion转换变得更加容易。
现在,如果我们需要独立工作,我们有两种选择:在Subversion中创建一个分支,并在那里提交(又称合并地狱),或者根本不提交。 通过Mercurial,我们希望能够继续在当地进行承诺,并且经常进行重新设计,从而获得独立性,同时不再支付创建指定分支机构的行政成本。
这一切听起来都很酷,直到备份出现在图片中。 使用Subversion很明显,如果有人没有犯下,他们的工作就会丢失。 但没有提交变得很不方便(没有历史记录,没有日志消息等),所以人们会一次又一次地提交。
借助Mercurial,可以继续承诺并重新投标,而不会延长时间,从而使更多工作面临风险。 于是出现了一个问题:如何备份开发者机器上的东西?
有没有其他方法可以做到这一点? 我想找到一个解决方案,让我们的开发人员在开始时使用他们大部分的Subversion知识。
只是想抛弃它:我认为你犯了一个错误。 线性历史并不是什么大不了的,拉/合并是更为正常的mercurial工作流程。 拥抱非线性历史并在特殊场合留下rebase。
你说:“我们希望Mercurial能够继续在当地进行承诺,并经常进行重新组合,从而获得独立性,同时保持创建命名分支机构的管理成本。”但是,在mercurial中,使用了无名分支机构,因此,没有管理成本。
请参阅http://stevelosh.com/blog/2009/08/a-guide-to-branching-in-mercurial/#branching-匿名了解如何自动创建的未命名分支将为您提供准确无误的零麻烦。
我知道这听起来好得将要真蛇油,但你的人可以只hg pull
和hg merge
和hg push
时,他们通过而无需考虑分支名称,或谁任何人有什么克隆,或者其他任何事情,你都会有一个协调的中心,而且工作不连贯
你也可以给每个开发者一个回购:
https://example.com/repos/awesome-product https://example.com/repos/awesome-product-wolever https://example.com/repos/awesome-product-pintér
他们可以在哪里推动他们想要的一切。
这意味着很多摇摆头,但这可能是好的,因为没有人会看到它们,直到恢复时间......然后,你只需要询问当前技巧的祖先:
hg pull https://example.com/repos/awesome-product-wolever -r tip
如果我使用这个方案,我会设置:
[paths] backup = https://example.com/repos/awesome-product-wolever
在.hgrc/hgrc
。
或者,您可以通过在其全局~/.hgrc
设置此值,为每个开发人员提供一个总体备份回购:
[paths] backup = https://example.com/repos/wolever-backup
我认为你做错了。
你所描述的看起来更像是你想要建立一个工具来确保/执行一个过程,而不是支持这个过程。
与集中式方法相比,以分散方式进行工作是一个很大的转变,并且试图将您所描述的种类限制比您的开发人员感受到的经验更可能造成更多的伤害。
如果您害怕他们不会定期将其变更推送到主要存储库,那么最好问问自己(也可以问问他们)“我们是否准备好改变我们的流程?” 许多人仍然声称DVCS会给他们的软件工厂带来混乱。 的确,DVCS不强制实施线性(单点失败)方式,但是带来混乱的不是工具,而是您在公司内部建立的团队精神。
现在,如果你必须迁移到Mercurial(因为它已经卖给了管理层,或者其他任何东西),但是对于SVN方法感觉更舒服,并带有一点“加号”,首先尝试使用HgSubversion。 之后的移民工作仍然很容易。
链接地址: http://www.djcxy.com/p/37631.html上一篇: How to back up local Mercurial repositories and use rebase?