不同分支中相同配置文件的不同版本

时间:2012-05-03 07:28:23

标签: git dotcloud

我们正在使用虚拟主机dotCloud来运行我们的一些应用程序。 dotCloud直接从git repo部署应用程序,并从该repo中读取名为dotcloud.yml的配置文件以配置和运行堆栈。

我们有两个分支(一个生产,一个分期),它们是同一个仓库的一部分,并且这些分支推动分离dotCloud实例。 dotcloud.yml文件在运行这些实例中存在细微差别。

管理此dotcloud.yml文件的最佳方法是什么?目前我们只是确保我们确保每个分支上的dotcloud.yml都是正确的,但是当我们将更改从分段合并到主分区时,它会不断被覆盖。

2 个答案:

答案 0 :(得分:1)

你可以:

  • 版本a dotcloud.yml.template
  • 版本a dotcloud.yml.value.proddotcloud.yml.value.staging,其中包含每个环境的相关值。
  • 版本一个涂抹脚本,负责根据dotCloud实例构建正确的dotcloud.ym l文件(不再版本化)。

您可以在(也是版本化的)filter content driver中将涂抹脚本声明为.gitattribute file

filter driver

在任何git checkout上,都会调用涂抹脚本,如果它识别出dotcloud.yml.template内容,则会构建正确的dotcloud.yml文件。

答案 1 :(得分:0)

你可以:

  • dotcloud.yml添加到.gitignore,有两个单独的文件用于登台和制作(例如dotcloud.yml.stagingdotcloud.yml.production),这两个文件都存在于您的git存储库中,设置了一个符号链接{ {1}},并使用dotcloud.yml → dotcloud.yml.production推送(dotcloud push --rsync标志将覆盖推送机制检测,rsync机制将启动,而不是git机制);
  • 使用相同的--rsync文件,但依赖于不同的机制(例如dotcloud.ymldotcloud var脚本)在生产和暂存行为之间切换。