Mercurial不';不要忽略我指定的目录中的文件
我有mercurial存储库。存在.hgignore文件:Mercurial不';不要忽略我指定的目录中的文件,mercurial,ignore,hgignore,Mercurial,Ignore,Hgignore,我有mercurial存储库。存在.hgignore文件: λ ~/workspace/kompgrafika/nurbs/ cat .hgignore syntax: regexp ^Makefile ^bin/.*$ CMakeFiles/.*$ ^CMakeCache\.txt ^cmake_install\.cmake 有一个名为CMakeFiles的目录我要忽略: λ ~/workspace/kompgrafika/nurbs/ tree CMakeFiles CMakeFile
λ ~/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个文件
但是运行hg status
时,它不会出于某种原因忽略3dfractals.dir
λ ~/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.
我还尝试将cmakfiles/*$
更改为^cmakfiles$
。没有结果
有什么问题吗?我在Windows上,但通常 CMakeFiles/*
你会帮我的…我在Windows上,但通常 CMakeFiles/* 会帮我搞定的…嗯,它在这里起作用:
$ 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
$ hg showconfig extensions.inotify
并在必要时禁用它。如果扩展名是从您自己的配置文件加载的(请使用hgshowconfig--debug
),那么您可以删除加载它的行。如果它加载在无法更改的系统范围配置文件中,则添加
[extensions]
inotify = !
到您自己的配置文件来禁用它。嗯,它在这里工作:
$ 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
$ hg showconfig extensions.inotify
并在必要时禁用它。如果扩展名是从您自己的配置文件加载的(请使用hgshowconfig--debug
),那么您可以删除加载它的行。如果它加载在无法更改的系统范围配置文件中,则添加
[extensions]
inotify = !
到您自己的配置文件来禁用它。我做了
rm-rf CMakeFiles
和make(再次创建该目录)。然后运行hg status
,目录从列表中消失。某种缓存错误?不,不应该是-我们不缓存有关.hgignore
文件的信息。hg showconfig extensions
是否偶然提到了inotify
?这是一个文件系统监视器扩展,它可能会把事情搞得一团糟,从而造成您刚才看到的情况。似乎移除该扩展解决了问题。我们开始吧!我已经用关于inotify扩展的更多信息扩展了答案。我做了rm-rf CMakeFiles
和make(再次创建该目录)。然后运行hg status
,目录从列表中消失。某种缓存错误?不,不应该是-我们不缓存有关.hgignore
文件的信息。hg showconfig extensions
是否偶然提到了inotify
?这是一个文件系统监视器扩展,它可能会把事情搞得一团糟,从而造成您刚才看到的情况。似乎移除该扩展解决了问题。我们开始吧!我已经用有关inotify扩展的更多信息扩展了答案。