2012-02-14 19 views
1

私はCodeIgniterのに基づいてプロジェクトを持っている...Gitのワークフロー、サブモジュール、レポの分岐.. OH MY

私のような環境設定フォルダがあります。

/* this does not get pushed to github, it stays on my development workstation */ 
/application/config/development 
/* this is created from example_changeme, when a new client is created. */ 
/application/config/production 
/* this one is used when creating a new client it houses the "template" of production configs */ 
/application/config/example_changeme 

を私はのためのコアレポを持っていますgithubには次のフォルダを除くすべてが含まれています:

/application/config/production 
/application/config/development 
/application/views 
/index.php 

私はクライアントごとにクライアントのレポを持っています。私はcore_repoするための変更を行うことができるとの中にそれらの変更をプルダウンできるようにする必要があり

/core/ 
/client/ 
    ggg/ 
    sgaz/ 

:として私は、フォルダ構造を持っている私の開発ワークステーション上

/* this is created from example_changeme */ 
/application/config/production 

/application/views 
/index.php 

:これらの枝は、フォルダを持っています特定のブランチ(またはクライアントレポ内のすべてのブランチ)例のシナリオは次のようになります。

私は下のコントローラにコードを変更します:現在/application/controllers

私は新しいサイトのそれぞれに/ペーストまたは再クローンcore_repoをコピーする必要があり、再私の意見にあった変更を作成する。

理想的に:私は単に、まだcore_repoから変更を取得するには、「更新」の形式を使用タクトでアプリケーション/ビューとのconfig /生産とのindex.phpを維持したいと思います

どうすればこのようなことを行うことができますか?

+0

私は、やや複雑ではないにもかかわらず、同様の問題を抱えています。私はあなたが3つの異なる "バリエーション"でプロジェクトを見つけることができる3つの場所を持っていることを正しく理解しています。 – bottleboot

+0

それぞれの '/ application/client1'フォルダは、独自のパッケージ化されたアプリケーションフォルダです。コントローラー/モデル/ライブラリー/ヘルパーは今のところすべて同じですが、それらが異なる可能性があります。 CIは上記のように複数のアプリケーションをサポートしていますが、docroot内のそれぞれにカスタムindex.phpファイルがあるだけです。IE:ggg.php、index.php、sgaz.php – gorelative

答えて

1

これは簡単ではありませんが、試してみます。

私が正しく理解している場合は、複数のサイト/プロジェクトにわたってアプリケーションのコアバージョンを使用します。あなたは、プロジェクトの特定のファイルや設定ファイルなどのフォルダを失うことなく、コアバージョンのそれらのサイトに更新をプッシュできるようにします。

あなたが望むのはもう少し複雑ですが、そのような設定には、このチュートリアルで何をしているのかを教えてください。 http://nvie.com/posts/a-successful-git-branching-model/

今のようにプロジェクトごとに異なるファイルは無視してください。 Git: Pushing to two repos in one command

それはそれをカバーしていた場合、私はなるだろうされていない場合、私はわからない:この答えで提案されているようになど。

は、すべてのすべてのクライアントの場所にプッシュするとして、あなたはこれを行うことができます再訪してうれしい:)。