The `vc-hg-find-file-hook' tries to automatically invoke `smerge-mode' when a file with conflicts is visited. Unfortunately, due to incorrect assumptions, it rarely -- possibly never -- actually manages to detect the files. There are two incorrect assumptions in the code that prevent this: First, that `vc-state' will already be cached by the backend, which is not true in at least the cases of visiting the file, reverting the file, or using `vc-refresh-state'. It is certainly possible that in some case or other the hook works, this assumption means that it is almost never going to behave as intended. Second, it assumes that a ".orig" backup file is created by Mercurial next to the current file, which is only true by default: these files can be redirected to an alternate path, or disabled entirely, by the user. This is especially common when working on a network file-system, since additional file operations can slow down the Mercurial merge process, or when users have some other mechanism to handle the failure case.