2011-09-02 53 views
1

特殊部門中我們有一個項目的幾個分支共享約一半的代碼,並使用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')) ?>' 

反正,你怎麼解決呢?

+0

你能澄清 - 什麼是分支?它們是不同的版本,將永遠保持完全分離,還是在某個時刻將它們合併回來?你是否正在爲新功能開發而分離,然後再轉向穩定版本? –

回答

3

什麼通常與不同的內容管理同一個文件之中分支(而無需處理合並問題)做的是:

  • 使用merge driver(如keepmine),以始終保持在合併過程中的文件的本地版本

  • 或使用filter driver有:

    • 一個config/databases.yml.tpl版本
    • 一個辦法讓回到正確的值取決於環境(如當前分支的名稱),這將結合
    • 一個「smudge」腳本(版本),在結賬時,模板和正確的價值觀爲了產生一個完整的config/databases.yml

smudge/clean

的腳本和模板文件總是從樹枝間(沒有合併問題)相同。
產生的config/databases.yml仍然是一個私人的,而不是版本。

相關問題