In terms of current a/c/m attributes and usage of files() after some thinking i believe that usage of localrepo.status() would be much better. For example hg st --change REV gives You modified, added, removed, deleted files for that REV, thus making merge changes same as in diff. And it's much faster than current try except solution. --- Reference: https://bitbucket.org/marcinkuzminski/vcs/issues/35/