Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Mercurial与分支一起使用-发布到可免费访问的Web服务器_Mercurial_Diff_Branch - Fatal编程技术网

将Mercurial与分支一起使用-发布到可免费访问的Web服务器

将Mercurial与分支一起使用-发布到可免费访问的Web服务器,mercurial,diff,branch,Mercurial,Diff,Branch,我们是一个小型的开发团队,使用一个只能通过FTP访问的Web服务器发布Web应用程序 我们的工作流程如下: 开发人员正在本地开发某些请求的功能 完成后,将其提交并推送到“中心”存储库 一天中有几次,其中一个开发人员发布已更改为测试网站的文件,让关键用户了解功能是如何实现的 我们每周一次部署到生产现场 由于我们的Web服务器不支持SSH,我们无法在服务器上推送更改集和更新,因此我们创建了一个自定义脚本,通过FTP传输更改的文件 每次我们使用该脚本时,都会创建一个新的标记,因此我们可以使用hg

我们是一个小型的开发团队,使用一个只能通过FTP访问的Web服务器发布Web应用程序

我们的工作流程如下:

  • 开发人员正在本地开发某些请求的功能
  • 完成后,将其提交并推送到“中心”存储库
  • 一天中有几次,其中一个开发人员发布已更改为测试网站的文件,让关键用户了解功能是如何实现的
  • 我们每周一次部署到生产现场
由于我们的Web服务器不支持SSH,我们无法在服务器上推送更改集和更新,因此我们创建了一个自定义脚本,通过FTP传输更改的文件

每次我们使用该脚本时,都会创建一个新的标记,因此我们可以使用hg diff标记之间的差异(我们的版本)

到目前为止,我们在工作流中引入了分支,让开发人员对代码进行根本性的更改,并继续对发布到生产环境中的日常小更改做出贡献,这一切都很好

问题是hg diff不支持分支

那么,哪种方法最好呢?我们一直在考虑的一些选择是:

  • 将FTP安装为本地卷(使用MacFuse或类似工具)并使用mercurial推送/更新,但速度太慢
  • 玩一下捆绑包,看看它们是否能帮助我们,但看起来很复杂

  • 实例 在上一次操作中,将创建一个新头,因此现在有两个头(稳定和不稳定分支)

    hg diff的结果是在不进行合并的情况下显示不稳定的文件


    非常感谢您的评论

    在您的示例中,您正在创建,而不是(命名的)。标记不会帮助您创建单独的开发行:它们只是分配了特定修订的独立标识符

    创建分支 要开始使用分支,您可能需要查看一些教程,例如:

    • (摘自布莱恩·奥沙利文的书)
    • (史蒂夫·洛什)
    根据您的描述,您可能希望基于当前的
    默认
    分支以及可能需要进行根本性更改的任何功能/主题分支创建
    prod
    qa
    分支

    一旦这些分支就位,就可以很容易地比较它们,在它们之间进行合并,查看从一个分支到另一个分支的哪些更改处于挂起状态,等等

  • 玩一下捆绑包,看看它们是否能帮助我们,但看起来很复杂

  • 如果您只有FTP访问权限,那么捆绑包可能对您没有帮助。您可以通过FTP将捆绑包上载到服务器,但需要能够在服务器上运行
    hg
    ,才能将捆绑包解压缩到存储库中。

    分支是修订版。。。因此,
    hg diff--rev[branch\u rev\u id]
    对您不起作用?hg diff对我们不起作用。在这种情况下,在不稳定的分支中提交的文件会在diff中弹出。我用一个问题的例子更新了这个问题
    $ hg tag qa-001   /* init to see diferences QA Site */
    $ hg tag prod-001 /* init to see diferences Production Site */
    $ hg ci -m "working on a stable feature"
    $ hg tag qa-002
    $ hg ci -m "change on the stable feature"
    $ hg tag qa-003
    $ hg tag prod-002
    $ hg ci -m "another change on stable"
    $ hg pull ../CentralRepo  /*Where there is another Branch with unstable files*/
    
    $hg diff -r qa-003 -r tip