diff --git a/mercurial/chgserver.py b/mercurial/chgserver.py --- a/mercurial/chgserver.py +++ b/mercurial/chgserver.py @@ -147,9 +147,14 @@ """ def trystat(path): try: - st = os.stat(path) - return (st.st_mtime, st.st_size) - except OSError: + # sometimes __version__.py may change without stat change + # (issue5653), check its content instead. + if '__version__' in path: + return util.readfile(path) + else: + st = os.stat(path) + return (st.st_mtime, st.st_size) + except (OSError, IOError): # could be ENOENT, EPERM etc. not fatal in any case pass return _hashlist(map(trystat, paths))[:12]