# HG changeset patch # User Martin von Zweigbergk # Date 2020-02-14 01:15:08 # Node ID 5e3402a0b868877cb2eeccd1ca08fc040b1b81e1 # Parent adb93aa98c78db9d7d830349c62f69f660434e96 mergestate: determine if active without looking for state files on disk I couldn't think of a reason that we need to check state files on disk to determine if a merge is active. I could imagine them being for there for detecting broken state files that would then be cleaned up by some later command, but we always delete the entire `.hg/merge/` tree, so that doesn't seem to be it. The checks were added in 4e932dc5c113 (resolve: abort when not applicable (BC), 2014-04-18). Perhaps there were needed for that and then made obsolete by 6062593d8b06 (resolve: don't abort resolve -l even when no merge is in progress, 2014-05-23). The reason I want to delete the checks is that I think `ms = mergestate.read(repo); ms.active() and ms.local` should be a valid pattern, but it crashes when the merge state file is an empty file if we consider mere presence of the file as "active". Differential Revision: https://phab.mercurial-scm.org/D8118 diff --git a/mercurial/merge.py b/mercurial/merge.py --- a/mercurial/merge.py +++ b/mercurial/merge.py @@ -413,14 +413,7 @@ class mergestate(object): Returns True if there appears to be mergestate. This is a rough proxy for "is a merge in progress." """ - # Check local variables before looking at filesystem for performance - # reasons. - return ( - bool(self._local) - or bool(self._state) - or self._repo.vfs.exists(self.statepathv1) - or self._repo.vfs.exists(self.statepathv2) - ) + return bool(self._local) or bool(self._state) def commit(self): """Write current state on disk (if necessary)"""