2

Hg の無視が便利であることは知っていますが、たとえば、気にするファイルを指定して残りを無視する方法はありますか。

レポにある場合、Hgに伝える方法はありますか?リストにないものはすべて保持して無視しa.c, a.h, a.o, a.exe, a.errたいだけです。*.c *.h

4

1 に答える 1

3

へー、@ vonCは正しいです、私はこれを手放すことができませんでした. hgignore をブラックリストではなくホワイトリストにする方法はありません。私はそれが設計によるものだと思います(確かに私が設計したわけではありません)。

いくつかのオプションがあります:

  1. すべて( .*) を追加してから、追跡するファイルに追加します -- 常に追加する.hgignoreと、hg add無視がオーバーライドされます

  2. 分解して適切なブラックリストを作成するだけです:hg status --no-status --unknown >> .hgignore素晴らしい出発点です.

肝心なのは、追跡したくないものを誤って追跡することは、追跡したかったものを誤って追跡するのを忘れるよりも危険な状況ではありません. 前者はリポジトリに少しノイズを発生させますが、後者はデータ損失の可能性があります。

あなたが本当に派手になりたいのなら、あなたに ' .*' を追加してから.hgignore、次のようなフックを作成することができます:

[hooks]
precommit.add = hg add $(hg status --unknown --no-status -I '**.c' -I '**.h')

これにより、コミット時に新しい .c および .h ファイルが自動的に追加されます。

于 2012-05-07T16:13:01.213 に答える