我正在使用 Mercurial 管理 $HOME,以保持我的 dotfiles 良好并被跟踪,或者至少是对我来说重要的那些。
然而, ~ 中有大量不需要跟踪的文件和目录,并且该集合不断变化和不断增长。
从历史上看,我通过使用这个 .hgignore 来解决这个问题:
syntax: glob
*
就目前而言,这使我的状态保持干净,仅使以前跟踪的文件可见。但是,我有一些目录(在我的例子中是
scripts
、 .emacs.d
),我想在其中看到未跟踪的文件;我几乎总是想跟踪这些目录的新增内容。我知道我可以跑
hg st -u scripts
识别未跟踪的文件,但我想要一种方法,我可以使用普通的 ole hg 状态实现相同的功能。有没有办法做到这一点?
最佳答案
在 .hgignore
试试这个反而:
syntax: regexp
^(?!(scripts|foo|bar)/)[^/]+/
^
匹配路径开头 (?!(scripts|foo|bar)
使用负前瞻来忽略除目录中的文件之外的所有文件 scripts
, foo
或 bar
/)
确保忽略以跟踪目录作为前缀的目录 [^/]+/
然后实际匹配任何目录(排除那些被前瞻排除的目录),以便 ~
中的文件不被忽视 此解决方案中的中心思想(负前瞻)归功于 Michael La Voie 对 this question 的回答。
关于mercurial - 如何忽略除使用 .hgignore 之外的所有目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637496/