2012-02-14 12 views
2

私は、プロジェクト全体にとって重要な設定ファイルを持っています(つまり、リポジトリをクローンする人はこのconfを持つべきです)、そしてローカル設定をいくつか持っていますこのファイルの中の何かをカスタマイズするために、私はローカルのカスタマイズを追跡したくありません)。構成ファイルにトラッキング不可能な部分があります

このファイルは一意で、複数のファイルを使用するようにソフトウェアを設定することはできません。また、includeという指令はサポートしていません。

Gitでこのシナリオを処理する方法はありますか?


私は、このファイルの唯一のステージ部にgit-add -pまたは-iを使用することができますが、それは良い解決策ではない:それは、あまりにもエラーが発生しやすいのですかなりいくつかの作業を必要としgit-statusは、いつものようにローカルで変更この設定ファイルを表示します。

多分私はいくつかのgitフックを使用することができますか?

+0

コンフィグテンプレート "configname.template"を正しいグローバルオプションのみでチェックインして、実際のコンフィグレーション名にコピーするように頼むことができますか?彼らは、ローカルオプションを設定する必要があるので、これを尋ねることは、面倒ではありません。 – Janne

+0

@ Janne:これは私が今やっていることです:私は 'config.global'(追跡された)ファイルと' config.local'(untracked)ファイルを持っています。ユーザーは 'config.local'のみを変更し、' cat config.global config.local> config'を実行する必要があります。問題は、このようにして設定ファイルが実際にgitによって追跡されず、 'config.global'が更新されたときにユーザーが気にする必要があり、' config'ファイルを手動で更新する必要があるということです。このシナリオはまた、かなり誤りがちです。 – peoro

+0

グローバル設定も同様に変更される傾向がありますか?私はgitからこれを処理する良い方法がないと思う。実際のアプリケーションの周りにラッパースクリプトを持つようなものに頼ることができます。このスクリプトは、グローバル設定ファイルの変更を最初にチェックし、アプリケーション設定に渡す前にローカル設定とマージします。厳密ではありませんが、少なくともエラーが発生しやすい手動介入を削除してください。 – Janne

答えて

0

実際に私が知っているgitのファイルの一部を追跡する方法はありません。

メインファイルをロードするようにコードを変更し、デフォルトを上書きする環境用にカスタマイズしたコードを変更することができます。開発者は独自のカスタムバージョンを保つことができますが、テスト/ dev/prodの違いなどのためにカスタムバージョンを使用することもできます。

+0

私はそれをすることができますが大好きだ。残念ながら、私が頼りにしているソフトウェアはクローズドソースであり、複数の設定ファイルをサポートしていません... – peoro

+0

私はそれがとても悪いことが分かります。がんばろう! – Bill

1

"config.global"ファイルと "config.local"ファイルがありますグローバルコンフィグレーションとローカルのユーザ固有のパーツに含まれます。アプリケーションのラッパースクリプトを作成します(もちろん、正確にはOSに依存します)。スクリプトが最初に、グローバル、ローカル、および「実際の」設定ファイルの変更時刻を確認するようにします。どちらかの部分ファイルが新しい場合は、それらを実際の設定に連結します。その後、適切なアプリケーションを起動します。

関連する問題