从Subversion到Mercurial-如何适应工作流和登台/集成系统?
从svn到hg,我们都被吓坏了,随着开发工作流程或多或少地被冲出,这里仍然是最困难的部分——阶段和集成系统 希望这个问题比您常见的“我如何从xxx移动到Mercurial”更进一步。请原谅冗长且可能写得不好的问题:) 我们是做很多项目(主要是PHP和Zend)的网络商店,所以我们有一个巨大的svn repo,有100多个文件夹,每个文件夹代表一个项目,当然有自己的标记、分支和主干。在我们的集成和测试服务器上(QA和客户机在那里查看工作结果和测试内容),一切都是自动化的——Apache设置为自动接收新项目,为每个项目/主干创建vhost;mysql迁移脚本也在主干中,开发人员可以通过简单的web界面应用它们。长话短说我们的工作流程是:从Subversion到Mercurial-如何适应工作流和登台/集成系统?,mercurial,continuous-integration,installation,staging,Mercurial,Continuous Integration,Installation,Staging,从svn到hg,我们都被吓坏了,随着开发工作流程或多或少地被冲出,这里仍然是最困难的部分——阶段和集成系统 希望这个问题比您常见的“我如何从xxx移动到Mercurial”更进一步。请原谅冗长且可能写得不好的问题:) 我们是做很多项目(主要是PHP和Zend)的网络商店,所以我们有一个巨大的svn repo,有100多个文件夹,每个文件夹代表一个项目,当然有自己的标记、分支和主干。在我们的集成和测试服务器上(QA和客户机在那里查看工作结果和测试内容),一切都是自动化的——Apache设置为自动接
可能值得一提的是,我们选择了Cinel作为repo托管服务(主要是因为我们使用的是FogBugz)您需要记住的是,它为版本控制引入了另一个维度:
您不必再只依赖分支(并从正确的分支获得一个暂存工作区)
现在,您可以通过DVCS使用(回购之间的推/拉) 这意味着您的暂存环境现在是一个回购(具有项目的完整历史记录),在某个分支签出:
许多开发人员可以将多个不同的分支推送到该分期回购协议:对账过程可以在该回购协议中单独进行,在您选择的“主”分支中进行。
或者,他们可以在回购协议中撤销分期付款分支,并在收回之前进行测试
来自Joel关于Mercurial的教程
开发人员无需提交其他人才能看到:允许他/她首先提取暂存分支,在本地协调任何冲突,然后推送到暂存回购。这绝不是您最终选择的完整答案,但这里有一些工具可能会考虑到这一点:
- 没有工作目录的存储库——如果
或clone-U
您将得到一个没有工作目录的存储库(只有.hg)。它们在服务器上更好,因为它们占用更少的空间,而且没有人想在那里编辑hg update null
hookschangegroup
changegroup
钩子在一个或多个变更集通过推或拉到达时运行,您可以让它做一些有趣的事情,例如:
- 根据收到的内容,将变更集推送到另一个回购协议上
- 更新接收回购的工作目录
hg更新提示
,该提示肯定位于my Expirement
分支上一句话:所有你想要设置的工具可能都已经存在了,但是把它们粘在一起将是一次性的工作。比我的答案更详细+1.我喜欢远程服务器端自动处理的主动推送。谢谢VonC和Ry4an-你的回答真的很有帮助。让我朝着正确的方向思考(希望:)谢谢VonC和Ry4an-你的回答真的很有帮助。让我朝着正确的方向思考(希望:)