mercurial - 如何忽略除使用 .hgignore 之外的所有目录?

标签 mercurial hgignore

我正在使用 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 , foobar
  • /)确保忽略以跟踪目录作为前缀的目录
  • [^/]+/然后实际匹配任何目录(排除那些被前瞻排除的目录),以便 ~ 中的文件不被忽视

  • 此解决方案中的中心思想(负前瞻)归功于 Michael La Voie 对 this question 的回答。

    关于mercurial - 如何忽略除使用 .hgignore 之外的所有目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3637496/

    相关文章:

    mercurial - 使用Amazon S3托管远程 Mercurial 库

    mercurial - 在 Mercurial 中指定编辑器

    python - 有没有办法在拉取更新之前查看中央 Mercurial 存储库是否有可用的更新?

    hgignore 文件中的正则表达式负向后视

    regex - Mercurial 为简单的 GLOB 语法提供 "invalid pattern"错误

    visual-studio-2010 - 适用于 Visual Studio 2010 项目的 Mercurial .hgignore

    version-control - Mercurial有哪些GUI客户端可用?

    git - 我如何让两个 "streams of development"(分支?)相互跟踪,同时以特定方式保持不同?

    django - Mercurial忽略pytharm的 “.idea”文件夹形式吗?

    mercurial - 如何使 hg 忽略过滤器不区分大小写