不同的数据库为Git项目
问题描述:
特殊部门中我们有一个项目的几个分支共享约一半的代码,并使用git结帐并举他们。现在,问题出现时,模型变得如此不同,以至于不再可能为其开发保留相同的数据库。我可以指定在config/databases.yml里专门为每个分支数据库名称,但它不跟踪。另一种解决方案是跟踪与分支名称一些外部文件,例如,配置/ branch.txt,并引用它的config/databases.yml里:不同的数据库为Git项目
all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: 'pgsql:host=localhost;dbname=<?php echo file_get_contents (realpath(__DIR__ . '/branch.txt')) ?>'
反正,你怎么解决呢?
答
什么通常与不同的内容管理同一个文件之中分支(而无需处理合并问题)做的是:
使用merge driver(如keepmine),以始终保持在合并过程中的文件的本地版本
-
或使用filter driver有:
- 一个
config/databases.yml.tpl
版本 - 一个办法让回到正确的值取决于环境(如当前分支的名称),这将结合
- 一个“
smudge
”脚本(版本),在结账时,模板和正确的价值观为了产生一个完整的config/databases.yml
- 一个
的脚本和模板文件总是从树枝间(没有合并问题)相同。
产生的config/databases.yml
仍然是一个私人的,而不是版本。
你能澄清 - 什么是分支?它们是不同的版本,将永远保持完全分离,还是在某个时刻将它们合并回来?你是否正在为新功能开发而分离,然后再转向稳定版本? –