Mercurial .hgignore正则表达式

Dan*_*ric 6 regex mercurial hgignore

使用Mercurial,我需要忽略除目录"tests"和"languages"以及这些目录中的文件之外的所有文件和目录.这一切都必须用正则表达式和.hgignoere来完成

文件:

  • 测试\ junk.txt
  • CMS \测试\ some_file.txt
  • CMS \语言\ USERS\lang.txt
  • 语言\ lang2.txt
  • tests.txt
  • PROBA/tests.txt

我试过这个:

^(?!test|test/|test$|languages|languages/|languages$)
Run Code Online (Sandbox Code Playgroud)

但这仅匹配以test和language开头的文件:

  • 测试\ junk.txt
  • 语言\ lang2.txt

我想要的也是比赛

  • CMS \测试\ some_file.txt
  • CMS \语言\ USERS\lang.txt

任何意见,将不胜感激.

msw*_*msw 1

使用 glob,它们更简单:

C:> dir
tests  languages pr0n espionage more_pr0n

C:> type .hgignore
syntax: glob
pr0n/*
espionage/*
more_pr0n/*
Run Code Online (Sandbox Code Playgroud)

补充:如果您担心会有新的目录不会被忽略,那么您应该:

hg add .hgignore
hg commit 
echo "new_directory/*" >> .hgignore
hg commit
Run Code Online (Sandbox Code Playgroud)

如果源目录中弹出太多目录和文件,此方法无法正常工作,请创建一个仅包含源的目录。