mercurial ● 213 words ● 1 minutes read

Mass Add and Remove All Files (Mercurial)

While I much prefer git and the GitHub workflow, Firefox’s codebase (mozilla-central) is store in a mercurial repository. There are tools that wrap mercurial so you can use a git-like interface, like git-cinnabar, but my philosophy is to learn the root tool so that I know what’s going on every step of the way. Imagine losing work to an abstraction problem – that would be terrible!

One task you need accomplish is adding and removing files during the commit process, which is easy enough:

# Add file
hg add path/to/file

# Remove missing file
hg remove path/to/file

When there are many files being added and some being removed, you want to be very careful, but adding and removing files one by one can be time-consuming. Once you’ve confirmed you want to add new files and remove missing files, you can run the following:

# Add new files, remove missing
hg addremove

If you only want to remove missing files, you can execute the following:

hg remove --after

I know that git branching and mercurial bookmarks are very similar, but I have much less confidence in my mercurial skills, so I’m always ultra careful not to mess up my commits. Good luck!