Deployment 将提交折叠/合并为一个变更集
目前,我保持本地和dev服务器env同步的方式是使用一个文件Deployment 将提交折叠/合并为一个变更集,deployment,mercurial,fabric,bitbucket,Deployment,Mercurial,Fabric,Bitbucket,目前,我保持本地和dev服务器env同步的方式是使用一个文件 def upload(): """ upload project dir to the production server. """ extra_opts = '--omit-dir-times' rsync_project( remote_dir=env.remote_dir, local_dir=env.local_dir, exclude=RSYNC_EXCLUDE, delete=True,
def upload():
""" upload project dir to the production server. """
extra_opts = '--omit-dir-times'
rsync_project(
remote_dir=env.remote_dir,
local_dir=env.local_dir,
exclude=RSYNC_EXCLUDE,
delete=True,
extra_opts=extra_opts,
)
reload_apache()
当我想从回购中提款时,我就用这个
def update_source():
""" Update the project source. """
with cd(env.directory):
run('hg fetchanddestroy')
别名cmd执行此操作的位置
fetchanddestroy = !hg pull && hg update -C
如何在bitbucket上将一系列变更集折叠为一个?我尝试过使用machg,但它只是在我合并的所有版本中退出。我正试图找到一种合适的方法,在我的VP上部署我的项目,并使它们与我的本地回购同步。在设置环境的过程中,我不得不对repo做一些小的调整,这导致在服务器上进行了许多更改集并拉入。因此,我想将所有这些小变更集合并为一个,以保持回购历史记录的整洁
谢谢我不确定我是否完全理解您的要求,但使用类似的分支工作流是管理开发和发布之间变更流的一种好方法 简而言之
- 将所有版本保存在名为master的分支中
- 像平常一样,在默认情况下进行所有开发
- 在发布时,为发布创建主版本的分支 $hg更新主版本和&hg分支版本1.0
- 从默认值中合并您想要的内容,例如,本例假设最新的内容是您想要的 $hg merge default&&hg commit-m“从默认值合并最新值”
- 如果有必要,在这个分支中进行更改,使测试通过(如果适用),并且通常准备好发布,无论这对您的项目意味着什么 $hg commit-m“最后一分钟错误修复…等”
- 当您确信发行版已准备就绪时,标记它,关闭分支并将其合并到主版本中 $hg标记“release1.0”和&hg更新主版本&hg合并“release1.0”和&hg提交-m“merge release1.0” $hg更新“1.0版”和&hg提交——关闭分支-m“全部完成”
- 并最终使默认值与主同步 $hg update default&&hg merge master#如果有多人进行开发,则此处可能存在合并冲突 $hg commit-m“从主版本合并1.0版”
- 对于部署,您只需从master中获取最新版本
另一种选择是使用补丁队列,这样您就可以完全控制在任何给定点进入变更集的内容 我不确定是否完全理解您的要求,但使用类似的分支工作流是管理开发和发布之间的变更流的一种好方法 简而言之
- 将所有版本保存在名为master的分支中
- 像平常一样,在默认情况下进行所有开发
- 在发布时,为发布创建主版本的分支 $hg更新主版本和&hg分支版本1.0
- 从默认值中合并您想要的内容,例如,本例假设最新的内容是您想要的 $hg merge default&&hg commit-m“从默认值合并最新值”
- 如果有必要,在这个分支中进行更改,使测试通过(如果适用),并且通常准备好发布,无论这对您的项目意味着什么 $hg commit-m“最后一分钟错误修复…等”
- 当您确信发行版已准备就绪时,标记它,关闭分支并将其合并到主版本中 $hg标记“release1.0”和&hg更新主版本&hg合并“release1.0”和&hg提交-m“merge release1.0” $hg更新“1.0版”和&hg提交——关闭分支-m“全部完成”
- 并最终使默认值与主同步 $hg update default&&hg merge master#如果有多人进行开发,则此处可能存在合并冲突 $hg commit-m“从主版本合并1.0版”
- 对于部署,您只需从master中获取最新版本
另一种选择是使用补丁队列,这样您就可以完全控制在任何给定点进入变更集的内容 为什么你想保持你的回购历史“干净”?有一堆小的承诺有什么害处?为什么你想保持你的回购历史“干净”?在那里有一堆小小的承诺有什么害处?