2011-11-02 125 views
1

我有一個應用程序,我賣給了多個客戶端。每個客戶都有自己的專用應用程序(在Heroku上)。git一個本地分支與多個遠程分支同步:如何?

這些客戶的應用程序只有3個配置文件有所不同:database.yml中,aws.yml和corporate.rb

在本地,我有一個主分支和其他許多地方分支機構,因爲我有客戶。我需要這些本地分支來存儲每個客戶的3個配置文件。每次我對主人進行更改時,我都會將其與每個客戶分支合併,並將他們逐一推送到Heroku。

這是相當重...

下面這篇文章的建議:pull/push from multiple remote locations,我創建了一個遠程分組分支,攻擊我的配置文件,使該分支關聯到多個網址。

問題是,當我嘗試推送它時,它拒絕執行它,因爲遙控器沒有正確同步。如果我強制推送,它會覆蓋我的配置文件,這也不是解決方案。

我試圖將這些配置文件包含在.gitignore中,但它一直在推動它們。

任何想法來解決這個問題?謝謝!!!

回答

1

我使用Heroku的環境變量解決了這個問題。其實,我不必設置任何變量來使用它們。我只是用APP_NAME變量,並設置我的配置爲每個應用程序在初始化文件:

# Custom values 

    case ENV['APP_NAME'] 
    when 'pgp' 
    CORPORATE_NAME = 'PGP Development' 
    S3_BUCKET = 'pgpdevelopment' 
    when 'anchor' 
    CORPORATE_NAME = 'Anchor Group' 
    S3_BUCKET = 'anchorgroup' 
    when 'corionl' 
    CORPORATE_NAME = 'Corio NL' 
    when 'masterproj' 
    CORPORATE_NAME = 'Corporate Demo' 
    when 'adg' 
    CORPORATE_NAME = 'ADG' 
    end 

#Default values 

    CORPORATE_NAME ||= ENV['APP_NAME'] 
    DEPARTMENT_SELECTION ||= false 
    GEOSCOPE_SELECTION ||= false 
    GEOSCOPE_DEFAULT ||= 'world' 
    DEPARTMENT_DEFAULT ||= 'all' 
    S3_BUCKET ||= ENV['APP_NAME'] 

    S3_CREDENTIALS = { 
    :access_key_id => my_key_id, 
    :secret_access_key => my_access_key 
    } 
    if Rails.env == "production" 
     S3_CREDENTIALS[:bucket] = S3_BUCKET 
    else 
     S3_CREDENTIALS[:bucket] = "#{S3_BUCKET}_dev" 
    end 

THX爲把我在正確的軌道上!

0

我不會在您的存儲庫中版本控制客戶特定的工件。在其他地方進行改造,然後從那裏推到heroku。你需要一個「管理員」回購。

+0

能否詳細說明一下?如何在不使用Git的情況下推送Heroku?你是什​​麼意思「管理」回購?謝謝! – ndemoreau

相關問題