https://bz.mercurial-scm.org/show_bug.cgi?id=6709
Bug ID: 6709 Summary: Glob expressions in subinclude Product: Mercurial Version: unspecified Hardware: All OS: All Status: UNCONFIRMED Severity: feature Priority: wish Component: Mercurial Assignee: bugzi...@mercurial-scm.org Reporter: wolj...@gmail.com CC: mercurial-devel@mercurial-scm.org Python Version: --- I would like to use glob expressions in ‘subinclude:’ and ‘include:’ lines in .hgignore files to match multiple ignore files or include files in any subdirectory. Use cases ═════════ Multiple ignore files ───────────────────── I have several ignore files that are generated by the build system. It would be too much error-prone to manage them manually. Files foo.hgignore bar.hgignore I would add this line to the source-root .hgignore file: syntax: glob include:?*.hgignore Ignore files in subdirectories ────────────────────────────── The project is divided into multiple parts, each residing in one subdirectory. To apply all the ignore files, I would add this to the main .hgignore file: subinclude:*/.hgignore Implementation ══════════════ Finding files using glob-expressions that have the wildcards in directory names can be quite expensive. I suggest also adding some kind of cache (or something) that would make the lookup faster. If there is no cache, such glob-expressions would slight higher performance impact on operations that use the ignore files, but I think that it would not be big problem for most projects. My idea about the cache: When the ignore entry list caching is enabled (in hgrc), only one hgignore file, located in the .hg directory (let's say .hg/cached-ignore) is used instead of other ignore files. This file contains all the hgignore files merged, but still with globs and regular expressions unexpanded. It is updated manually, by invoking command, let's say, hg update-ignore. This would make the lookup much faster, but at cost of one additional command after changing the ignore rules. Smarter approaches could be also used, such as comparing ctimes of .hg/cached-ignore with the other ignore files etc. -- You are receiving this mail because: You are on the CC list for the bug. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel