Search code examples
mercurialubuntu-13.10

hg remove all files listed in .hgignore


I have a mercurial repo with .hgignore file. I want to remove all files from disk (hg remove) in this repo which match pattern(s) listed in .hgignore.

I can list all ignored files with hg status -i but I don't know how can I delete them.

.hgignore contents:

syntax: glob

build
\.egg*
*.pyc

.DS_Store
*.sublime-*

Solution

  • You can only run hg remove on files that are tracked. To remove tracked files that match the .hgignore patterns, run this command

    $ hg forget "set:hgignore() and not ignored()"
    

    This uses a fileset to select the right files.

    If you want to remove files that are already ignored by Mercurial (not tracked), then see the purge extension. That can be used to cleanup a working copy so that it looks like a fresh checkout.