I’m managing $HOME using Mercurial, to keep my dotfiles nice and tracked, or at least the ones that matter to me.
However, there’s a profusion of files and directories in ~ that do not need to be tracked, and that set is ever-changing and ever-growing.
Historically, I’ve dealt with this by having this .hgignore:
syntax: glob
*
This keeps my status clean, as far as it goes, making only previously tracked files visible. However, I have some directories (in my case, scripts, .emacs.d) that I would like to see untracked files in; I almost always want to track new additions to those directories.
I know that I can run hg st -u scripts to identify untracked files, but I want a means whereby I can achieve the same function using plain ole hg status.
Is there a way to do this?
Try this in
.hgignoreinstead:^matches start of path(?!(scripts|foo|bar)uses negative lookahead to ignore all files except those in directoriesscripts,fooorbar/)ensures that directories which have a tracked directory as a prefix are ignored[^/]+/then actually matches any directory (excluding those ruled out by the lookahead), so that files in~aren’t ignoredCredit for the central idea in this solution (the negative lookahead) goes to Michael La Voie’s answer to this question