11

理解できない問題があります。WindowsではTortoiseHg(バージョン0.7.5)を使用していますが、Linuxでも同じ問題が発生します。ここにあります:

私の.hgignoreファイル:

syntax: regexp
^[^\\/]+$

私が達成しようとしているのは、hgリポジトリのルートにあるファイルを無視リストに追加することです。

たとえば、私がこれを好きなら:

.hg
+mydir1
+mydir2
-myfile1
-myfile2
-anotherfile1
-anotherfile2 
.hgignore

myfile1(2)とanotherfile1(2)を無視したい(名前はこの例の目的のためだけです-hgignoreファイルに簡単に入れることができる単純なルールはありません)

正規表現が良いと確信しているので(私はそれをテストしたことさえあります)、私が見逃しているものはありますか?アイデア?

これを達成するためのより簡単な方法はありますか?[Mercurialリポジトリのルートにある無視リストファイルに追加するには]

4

2 に答える 2

11

irc.freenode.netでこの質問を中継した#mercurialところ、ファイルとディレクトリを区別できないという回答がありました。ディレクトリは、正規表現で検索しているスラッシュなしで一致します。

.ただし、ディレクトリにピリオドが含まれることはなく、ファイルには含まれると想定できる場合、次のようなものが機能するようです。

^[^/]*\..*$

次のようなリポジトリでテストしました。

% hg ステータス -ui
? a.txt
? bbb
? foo/x.txt
? ふー/yyy

ファイルを追加すると、次のようになり.hgignoreます。

% hg ステータス -ui
? bbb
? foo/x.txt
? ふー/yyy
私は.hgignore
私は.txt

これは、a.txtファイルがルート ディレクトリでは正しく無視されているがx.txtfooサブディレクトリでは無視されていないことを示しています。bbbまた、ルート ディレクトリにある名前のファイルが無視されていないこともわかります。しかし、そのようなファイルを自分でファイルに追加できるかもしれません.hgignore

ルート ディレクトリのようなディレクトリがある場合bar.baz、このディレクトリとその中のすべてのファイルは無視されます。これが少し役立つことを願っています。

于 2009-06-30T11:47:50.100 に答える
7

ここに汚いトリックがあります:

.hgignoreに追加するよりも、ディレクトリに空のファイル「.hidden」を作成します。

^mydir/(?!\.hidden).+$

これにより、「。hidden」を除くディレクトリ内のすべてのファイルが無視されます。

于 2009-11-16T14:11:55.057 に答える