Mercurial:保持两个分支同步但具有一定的持久性差异?

mar*_*etz 11 django mercurial

我是一名使用django自行开发的Web开发人员,我正在努力了解如何使用mercurial部署网站.我想拥有的是能够保留一个可用于生产和开发工作的存储库.生产/开发之间总会存在一些差异(例如,他们可能使用不同的数据库,开发将始终启用调试)但总的来说它们将是同步的.我也希望能够直接在生产服务器上进行更改(整理html或css,简单的错误修正等).

我打算用来执行此操作的工作流程如下:

  • 创建2个分支,prod和dev(所有设置最初设置为生产设置)
  • 更改settings分支中的settings.py和其他一些内容.所以现在我有2个头,从现在开始,存储库总是有2个头.
  • (在开发机器上)对dev进行更改,然后使用'hg transplant'将相关的更改集复制到生产中.
  • 推送到主存储库
  • (在生产服务器上)从主仓库拉出,更新到生产头

注意:只要将更改移植到dev中,您也可以直接进行更改.

此工作流程的缺点是,无论何时进行更改,您不仅必须将其提交到您进行更改的任何分支,还必须将其移植到其他分支.有没有更合理的方式来做我想要的事情,也许使用补丁?或者失败了,有没有办法让提交过程自动将变更集自动移植到另一个分支,这是一个好主意吗?

Ste*_*osh 5

我可能会使用Mercurial Queues来做这样的事情.将主存储库保留为开发版本,并提供一个for-production补丁,对生产进行必要的更改.