2017-02-23 6 views
0

私は現在、私の会社のアプリケーションのためのいくつかのリポジトリを実行しています。設定ファイルを特定のままにしておく

私たちはビルドのために設定ファイルを必要とする2つのリポジトリを持っています。これらの設定ファイルは、ローカル、開発、ステージング、プロダクションビルドによって異なります。

各プロジェクトには、開発、ステージング、プロダクションブランチがあります。動作するようには思えどちらも、これらの戦略の

git update-index --assume-unchanged gomo-campaign-api/src/main/config/messengerPublisher.properties.xxx 
ECHO ignoring log4j.properties.xxx 
git update-index --assume-unchanged gomo-campaign-api/src/main/config/log4j.properties.xxx 
ECHO ignoring legacy-session-mapping.properties.xxx 
git update-index --assume-unchanged gomo-campaign-api/src/main/config/legacy-session-mapping.properties.xxx 
ECHO ignoring hibernate.cfg.xml.xxx 
git update-index --assume-unchanged gomo-campaign-api/src/main/config/hibernate.cfg.xml.xxx 
ECHO ignoring gomo-messenger-config.xml.xxx 
git update-index --assume-unchanged gomo-campaign-api/src/main/config/gomo-messenger-config.xml.xxx 
ECHO ignoring database.properties.xxx 
git update-index --assume-unchanged gomo-campaign-api/src/main/config/database.properties.xxx 
ECHO Initialisation completed. 

gomo-campaign-api/src/main/webapp/WEB-INF/database.properties.xxx merge=ours 
gomo-campaign-api/src/main/webapp/WEB-INF/gomo-messenger-config.xml.xxx merge=ours 
gomo-campaign-api/src/main/webapp/WEB-INF/hibernate.cfg.xml.xxx merge=ours 
gomo-campaign-api/src/main/webapp/WEB-INF/legacy-session-mapping.properties.xxx merge=ours 
gomo-campaign-api/src/main/webapp/WEB-INF/log4j.properties.xxx merge=ours 
gomo-campaign-api/src/main/webapp/WEB-INF/messengerPublisher.properties.xxx merge=ours 

私も、私は、次の内容で実行したSHファイルを持っている:私は、次の内容のファイル.gitattributes追加してい

、私は自動マージを行う場合、すなわち

git checkout staging 
git merge development 

これらのファイルの何かが変更された場合、私はまだ変更を移動しようとしています。

これらの戦略の設定に何か不足していますか?

dev>ステージングまたはステージング>プロードマージを実行する(またはアクセスすることさえできる)私と他のユーザーは1人だけです 他のユーザーは、開発にブランチを取得するためにプルリクエストを作成する必要があります。だから私は簡単にdevファイルを変更してローカルの設定を導入する他のユーザーを停止することができます。

しかし、私は本当にマージでこれらのファイルを無視するためにマージする必要があります。

私がステージングをチェックアウトして変更を加えてレポにプッシュする場合は、その変更を行いたいが、プロダクションに移すことは望ましくない。

私は十分な詳細を説明してくれることを願っています。

ありがとうございます。レポで

+1

短い答えはできないということです。 (あなたは*理論でもできます; * http://stackoverflow.com/a/41825703/1256452参照 - http://stackoverflow.com/a/42104116/1256452を読むこともできますが、それは重要なコードを書く必要があります。 )そのため、設定ファイルをバージョン管理することは常に悪い考えです。代わりに、version-control * sample *または* default *の設定ファイルを使用し、*実際の設定をバージョン管理ソフトウェアの厄介な邪魔にならないようにしてください。 (あるいは、あなたがそれをバージョン管理するならば、ソフトウェアそのものではなく*独立したリポジトリ*で行うようにしてください)。 – torek

答えて

0

我々は考えられ解決策の一つが、別のリポジトリでそれらを保っていたが、我々が行っているソリューションは、Mavenの中で、プロファイルタグを使用して、それぞれの環境のための設定ファイルを作成している

の最も優雅ありませんそれにもかかわらずソリューションです。

関連する問題