代码之家  ›  专栏  ›  技术社区  ›  Austin Hyde

Mercurial-保持部署和开发存储库

  •  2
  • Austin Hyde  · 技术社区  · 16 年前

    development 当它在我的本地网站上运行时 production 在web主机上实时运行时:

    <?php
    define('ENV','development');
    //or
    define('ENV','production');
    

    hg push (服务器也运行hg),但是,添加此开关后,“生产”站点将始终不同于“开发”站点,因为实时部署的版本将始终设置为 生产 而不是 发展

    这意味着我的部署过程从

    1. 发展
    2. hg commit -m "Made changes"
    3. 汞推动
    4. ssh host hg update
    5. 转到1。

    1. 试验
    2. hg commit-m“进行了更改”
    3. 改变 生产
    4. `hg commit-m“开发->“生产”
    5. 汞推动
    6. ssh主机更新
    7. 生产 -&燃气轮机;
    8. hg commit -m "prod -> dev"
    9. 转到1。

    这显然不太好。

    有没有什么办法使一个与另一个保持绝缘,这样活动站点将始终设置为 我的本地副本设置为 ?

    3 回复  |  直到 16 年前
        1
  •  3
  •   Paul Nathan    16 年前

    与其有一个交换机,不如有一个开发分支和一个生产分支。

    hg up prodbranch 
    hg merge -r devbranch
    hg push
    ssh yourserver hg update prodbranch
    
        2
  •  3
  •   Wrikken    16 年前

    如果您有一个Apache Web服务器,可以在server/vhost/per directory/.htaccess config中设置:

    SetEnv Deployment development
    

    或在生产中

    SetEnv Deployment production
    

    在脚本中使用:

    define('ENV',$_ENV['Deployment'])
    

    我假设(通常是这样)实际的webserver/virtualhost配置超出了正常的代码范围。

    http://httpd.apache.org/docs/2.2/mod/mod_env.html#setenv

        3
  •  0
  •   middus    16 年前

    推荐文章