Q:

Undo a remove action in Mercurial

Suppose that I have made some changes in the working directory and accidentally marked several files (that include some of the modified ones) for removal. How do I unmark the files for removal without losing the changes I have made?

A:

Just hg add the files.
I don't know why you're getting some many answers that modify the working directory.  If you've accidentally marked some files for removal you can undo it with add.
ry4an@four:~/hgtest$ hg status --all
M another_file
C a_file
ry4an@four:~/hgtest$ hg remove --after --force *
ry4an@four:~/hgtest$ hg status --all
R a_file
R another_file
ry4an@four:~/hgtest$ hg add *
ry4an@four:~/hgtest$ hg status --all
M another_file
C a_file

That said, don't use --force with hg remove or ever really.  Also try to get in the habit of using hg forget instead of hg remove --after,

A:

there are two options using hg revert :
hg revert -a
which will go back to the previous revision and put all your changes in new files with .orig appended to the names
hg revert [names of files to unremove] to just revert those files
i'd probably go with the latter

A:

hg revert
I'm pretty sure Mercurial even makes backups of your changes by default.

