5

私のチームはMercurialに切り替えています。私たちのプロジェクトにはすべて構成ファイルがあります(web.configまたはapp.config、およびいくつかのbatファイルもあります-私たちはC#ショップです)。これらのファイルはリポジトリの一部である必要があります。開発者がリポジトリのクローンを作成する場合、それらを機能させるには、構成ファイルにローカルの変更を加える必要があります。たとえば、プロジェクトの構成ファイルには、開発者のデータベースへの接続文字列やその他の環境固有の情報が必要な場合があります。これらの変更がリポジトリに反映されることは望ましくありません。また、リポジトリにアクセスしてチームに配布し、最終的には顧客に配布する必要があるこれらの構成に変更を加えることがあります。

これらのファイルが誤ってコミットされないようにMercurialを構成または使用するための最も簡単な方法は何ですか?そのようなファイルを明示的にコミットすることを余儀なくされたいのですが、リポジトリからのマージは自動的に更新されます。

これは他の誰かが直面している問題であるに違いありませんが、Mercurialの初心者として、私たちは皆、最善の解決策を見つけることができません。

編集:

いくつかの一般的な解決策を共有する可能性があるが、この質問と同じではない同様の質問は、次の場所にあります。条件付き水銀無視ファイル

他の質問があなたが探している答えを提供するかもしれない場合に備えて、私はこれを含めています。

4

2 に答える 2

6

これを処理する一般的な方法は、構成ファイルのテンプレートをリポジトリに保存し、実際の構成ファイルを Mercurial の無視リストに追加することです。

このようにして、最初からクローンを作成する新しい開発者でも、各構成ファイルの元の、変更されていないコピーをいつでも利用できますが、構成ファイルを使用できるようにするには、そのローカル コピーを実際のサーバーに作成する必要があります。構成ファイル名を変更し、ファイルを変更します。また、Beyond Compare などの比較/マージ プログラムを使用して、新しいバージョンのテンプレート ファイルを古いバージョンのローカル コピーと比較し、変更点を確認して不足している部分を追加することもできます。

実際の構成ファイルをコミットすることを強く防ぐ必要がある場合は、これを行う pre-commit または pre-push フックが必要です。

于 2011-01-12T23:36:25.687 に答える
1

.hg/hgrcファイルでこれを行います:

[defaults]
commit = -X Projectname/web.config

(「ProjectName」がプロジェクトのサブディレクトリであると仮定)


編集:

また、Tortoise HG を使用している場合は、これも追加します。

[tortoisehg]
ciexclude = Projectname/Web.config,Projectname/App_Data/DBFile.mdf

ちなみに、フォルダーパスのフォワードスラッシュに注意してください!Windowsでも!)

于 2013-12-16T14:15:24.880 に答える