カメHgを使用してkiln/mercurialのファイルを無視する方法「リポジトリの一部」

StackOverflow https://stackoverflow.com/questions/7351076

質問

キルンの亀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忘れる.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top