カメHgを使用してkiln/mercurialのファイルを無視する方法「リポジトリの一部」
-
28-10-2019 - |
質問
キルンの亀Hgを使用しています。私のVS 2010 C#プロジェクトには、リポジトリの一部であるファイルがいくつかありますが、コミットしたときにTortoise HGを無視してほしいと思います。たとえば、ログイン画面で、ユーザーIDをハードコード、テスト用のパスワードをハードコードする場合があります。コミット中にこのファイルを考慮したくありません。私は.hgignoreファイルを理解していますが、これは本当にリポジトリの一部ではないファイルで機能します。カメHgのトリック レポの一部であるファイルを無視します ? (だから、彼らはコミット中に変更された(m)として現れません。)ありがとう
解決
私は常に.hgignoreとの組み合わせを使用しています BeforeBuild
(.csprojファイル)このようなもの。
私のペットプロジェクトの1つでは、次のセットアップがあります。
App.config
テスト用の実際のハードコーディングされたユーザーIDとパスワードが含まれています。
App.config.example
同一ですが、「dummy_user」や「dummy_pw」などの偽データがあります。
App.config
は いいえ リポジトリの一部、 と それは無視されています(in .hgignore
).
App.config.example
リポジトリの一部です。
次に、次のことがあります BeforeBuild
私のソリューションの.csprojファイルのターゲット:
<Target Name="BeforeBuild">
<Copy
Condition="!Exists('App.config')"
SourceFiles="App.config.example"
DestinationFiles="App.config"/>
</Target>
これらすべてが一緒になって、次の効果があります。
- 実際のデータを備えた構成ファイルは、リポジトリに誤ってコミットすることはありません。
- リポジトリには、例データのある構成ファイルのみが含まれています
- 他の誰かが自分のマシンにリポジトリをクローム化する場合、彼は「実際の」構成ファイルを持っていません...しかし、それが欠落している場合、それは単にコピーするだけでVisual Studio / MSBuildによる最初のビルドの前に自動的に作成されます
.example
ファイル(そして、彼はただ置くことができます 彼の 新しく作成されたものへの実際のログインデータApp.config
ファイル)。 - もし
App.config
実際のハードコーディングされたユーザーデータが既に存在する場合、BeforeBuildイベントが発生する場合にのみ発生するため、構築時に上書きされません。App.config
します いいえ すでに存在しています
他のヒント
クリスチャンの答えは正しいものですが、Tortoisehgがあなたが望むものをサポートしていることに言及したいと思います 自動除外リスト.
除外リストの問題の1つは、マージで動作できないことです。マージしたときにすべてのファイルをコミットする必要があるため、棚、マージ、コミット、および障害で少しダンスをする必要があります。
Tortoisehgのコミットを行うと、チェックボックスが付いたファイルのリストがあります。あなたがコミットしたくないファイルを選択することを解除します。
または、コマンドラインでは、フォームのコミットを行います hg commit --exclude "pattern"
, 、ここで、パターンはHG MANページで定義されています。
いつでも使用できます hg忘れる.