目前我保持本地和开发服务器env同步的方式是使用fabfile。
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,但它只是拉回了我合并的所有内容。我试图以合适的方式在我的VPS上部署我的项目,并使它们与我的本地仓库保持同步。在设置环境的过程中,我不得不对repo进行微调,导致在服务器上进行了许多更改集。因此,我想将所有这些小变更集合并为一个,以保持我的仓库历史记录清洁。
由于
答案 0 :(得分:1)
我不确定我完全理解您的要求,但使用类似于Git Flow的分支工作流程是管理开发和发布之间变更流程的好方法。
在“短”中,
在发布时为主页创建分支
$ hg update master&& hg branch relv1.0
合并你想要的默认值,本例假设最新的是你想要的。
$ hg merge default&& hg commit -m“默认合并最新”
如果有必要,可以在此分支中进行更改,以便在适用的情况下通过测试,并且通常可以随时为您的项目做好准备。
$ hg commit -m“最后一刻bug修复......等等”
如果您确信发布已准备就绪,请对其进行标记,关闭分支并将其合并为主数据。
$ hg tag“release 1.0”&& hg update master&& hg合并“发布1.0”&& hg commit -m“merge release 1.0”
$ hg update“release 1.0”&& hg commit --close-branch -m“all done”
最后让默认值与master同步。
$ hg update default&& hg merge master#如果你有多个人正在进行开发,那么这里有合并冲突的可能性
$ hg commit -m“从master”
进行部署时,您可以从主
这里的整体效果是进入master的diff应始终代表自上次发布以来默认分支的组合变化,我认为这是您想要的,而不是导致该版本的所有单个变更集。
显然可能有1000种方法可以做到这一点,但我认为可以肯定的是,像Git-Flow这样的分支策略无处不在,你的团队可以理解它,从而遵循它。
另一种选择是使用补丁队列,这样您就可以完全控制在任何给定点进入变更集的内容。