# HG changeset patch # User Yuya Nishihara # Date 1443965129 -32400 # Node ID 3a0bb61371c52d7036beb199d22cdeaf2ed63c24 # Parent 366d489295ca7293887c4b9079620d8421616002 util: extract stub function to get mtime with second accuracy This function is trivial but will need a long comment why it can't use st.st_mtime. See the next patch for details. diff -r 366d489295ca -r 3a0bb61371c5 mercurial/context.py --- a/mercurial/context.py Mon Oct 05 14:37:59 2015 -0700 +++ b/mercurial/context.py Sun Oct 04 22:25:29 2015 +0900 @@ -1690,7 +1690,7 @@ def date(self): t, tz = self._changectx.date() try: - return (int(self._repo.wvfs.lstat(self._path).st_mtime), tz) + return (util.statmtimesec(self._repo.wvfs.lstat(self._path)), tz) except OSError as err: if err.errno != errno.ENOENT: raise diff -r 366d489295ca -r 3a0bb61371c5 mercurial/dirstate.py --- a/mercurial/dirstate.py Mon Oct 05 14:37:59 2015 -0700 +++ b/mercurial/dirstate.py Sun Oct 04 22:25:29 2015 +0900 @@ -428,7 +428,7 @@ def normal(self, f): '''Mark a file normal and clean.''' s = os.lstat(self._join(f)) - mtime = int(s.st_mtime) + mtime = util.statmtimesec(s) self._addpath(f, 'n', s.st_mode, s.st_size & _rangemask, mtime & _rangemask) if f in self._copymap: @@ -998,7 +998,7 @@ if not st and state in "nma": dadd(fn) elif state == 'n': - mtime = int(st.st_mtime) + mtime = util.statmtimesec(st) if (size >= 0 and ((size != st.st_size and size != st.st_size & _rangemask) or ((mode ^ st.st_mode) & 0o100 and checkexec)) diff -r 366d489295ca -r 3a0bb61371c5 mercurial/util.py --- a/mercurial/util.py Mon Oct 05 14:37:59 2015 -0700 +++ b/mercurial/util.py Sun Oct 04 22:25:29 2015 +0900 @@ -952,6 +952,9 @@ except AttributeError: return os.stat(fp.name) +def statmtimesec(st): + return int(st.st_mtime) + # File system features def checkcase(path):