2012-01-12 8 views
1

私はmercurialリポジトリを持っています。 .hgignoreファイルがあります:Mercurialはディレクトリ内のファイルを無視しません。

λ ~/workspace/kompgrafika/nurbs/ cat .hgignore 
syntax: regexp 
^Makefile 
^bin/.*$ 
CMakeFiles/.*$ 
^CMakeCache\.txt 
^cmake_install\.cmake 

私は無視したいCMakeFilesという名前のディレクトリがあります:

λ ~/workspace/kompgrafika/nurbs/ tree CMakeFiles 
CMakeFiles 
├── 3dfractals.dir 
│   ├── build.make 
│   ├── cmake_clean.cmake 
│   ├── CXX.includecache 
│   ├── DependInfo.cmake 
│   ├── depend.internal 
│   ├── depend.make 
│   ├── flags.make 
│   ├── link.txt 
│    ├── progress.make 
│   └── src 
│    ├── DisplayControl.cpp.o 
│    ├── Drawer.cpp.o 
│    ├── main.cpp.o 
│    ├── PointFileReader.cpp.o 
│    ├── PointGenerator.cpp.o 
│    └── Program.cpp.o 
├── CMakeCCompiler.cmake 
├── cmake.check_cache 
├── CMakeCXXCompiler.cmake 
├── CMakeDetermineCompilerABI_C.bin 
├── CMakeDetermineCompilerABI_CXX.bin 
├── CMakeDirectoryInformation.cmake 
├── CMakeOutput.log 
├── CMakeSystem.cmake 
├── CMakeTmp 
│   └── CMakeFiles 
│    └── cmTryCompileExec.dir 
├── CompilerIdC 
│   ├── a.out 
│   └── CMakeCCompilerId.c 
├── CompilerIdCXX 
│   ├── a.out 
│   └── CMakeCXXCompilerId.cpp 
├── Makefile2 
├── Makefile.cmake 
├── progress.marks 
└── TargetDirectories.txt 

7ディレクトリ、31個のファイル

しかし、それは3dfractals.dirを無視しないhg statusを実行しています何らかの理由で。

λ ~/workspace/kompgrafika/nurbs/ hg st 
A .hgignore 
A docs/pol_10.wings 
? CMakeFiles/3dfractals.dir/src/DisplayControl.cpp.o 
? CMakeFiles/3dfractals.dir/src/Drawer.cpp.o 
? CMakeFiles/3dfractals.dir/src/PointFileReader.cpp.o 
? CMakeFiles/3dfractals.dir/src/PointGenerator.cpp.o 
? CMakeFiles/3dfractals.dir/src/Program.cpp.o 
? CMakeFiles/3dfractals.dir/src/main.cpp.o 

私が使用しています:

λ ~/workspace/kompgrafika/nurbs/ hg --version 
Mercurial Distributed SCM (version 2.0.2+5-1f9f9b4c2923) 
(see http://mercurial.selenic.com for more information) 

Copyright (C) 2005-2011 Matt Mackall and others 
This is free software; see the source for copying conditions. There is NO 
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 

を私も^CMakeFiles$CMakeFiles/.*$を変えてみました。結果がありません。

何か問題がありますか?

答えて

1

うーん、それはここで働く:

$ cat .hgignore 
syntax:regexp 
^Makefile 
^bin/.*$ 
CMakeFiles/.*$ 
^CMakeCache\.txt 
^cmake_install\.cmake 
$ hg init 
$ mkdir -p $(dirname CMakeFiles/3dfractals.dir/src/DisplayControl.cpp.o) 
$ touch CMakeFiles/3dfractals.dir/src/DisplayControl.cpp.o 
$ touch CMakeFiles/cmake.check_cache 
$ hg status 
? .hgignore 
$ hg status -A 
? .hgignore 
I CMakeFiles/3dfractals.dir/src/DisplayControl.cpp.o 
I CMakeFiles/cmake.check_cache 

これはMercurial 2.0.2 + 59のため、バージョンと同じに動作するはずです。

あなたが見る通りにhg statusを飛び越えることができるものは、inotify extensionです。そのwikiページで述べたように、それはstill buggyなのでまだ実験的なものと考えられます。 inotifyを

$ hg showconfig extensions.inotify 

とチェックし、必要に応じて無効にします。拡張機能が独自の設定ファイル(hg showconfig --debugにチェック)からロードされている場合は、それをロードする行を削除することができます。それはあなたが変更することはできません、システム全体の設定ファイルにロードされていた場合、それを無効にするには、独自の設定ファイルに

[extensions] 
inotify = ! 

を追加します。

+0

私は 'rm -rf CMakeFiles'を行い、make(そのディレクトリをもう一度作成するため)しました。その後、 'hg status'を実行し、ディレクトリがリストからなくなりました。キャッシュバグのようなもの? –

+0

私は '.hgignore'ファイルに関する情報をキャッシュしません。 'hg showconfig extensions'は偶然に' inotify'に言及していますか?これはファイルシステムのモニタ拡張です。あなたが今見た状況を作るために物事を混乱させるかもしれません。 –

+0

はい、あります。その拡張機能を削除すると問題が解決するようです。 –

0

私はWindows上だけど、通常

CMakeFiles/*

が私のためにトリックを行うだろう...

+0

構文:glob CMakeFiles/* 'はこのトリックを行いません。 –

+0

'CMAkeFiles /'はどうですか? –

関連する問題