[Request] [+- ] D11800: largefile: use the proper "mtime boundary" logic during fixup
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Wed Nov 24 11:16:10 UTC 2021
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
This will prevent ambiguous cache entry to be used in racy situation. This fix
flakiness in test and some real live misbehavior.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D11800
AFFECTED FILES
hgext/largefiles/lfutil.py
hgext/largefiles/reposetup.py
CHANGE DETAILS
diff --git a/hgext/largefiles/reposetup.py b/hgext/largefiles/reposetup.py
--- a/hgext/largefiles/reposetup.py
+++ b/hgext/largefiles/reposetup.py
@@ -228,13 +228,12 @@
s = wctx[lfile].lstat()
mode = s.st_mode
size = s.st_size
- mtime = timestamp.mtime_of(s)
- cache_data = (mode, size, mtime)
- # We should consider using the mtime_boundary
- # logic here, but largefile never actually had
- # ambiguity protection before, so this confuse
- # the tests and need more thinking.
- lfdirstate.set_clean(lfile, cache_data)
+ mtime = timestamp.reliable_mtime_of(
+ s, mtime_boundary
+ )
+ if mtime is not None:
+ cache_data = (mode, size, mtime)
+ lfdirstate.set_clean(lfile, cache_data)
else:
tocheck = unsure + modified + added + clean
modified, added, clean = [], [], []
diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py
--- a/hgext/largefiles/lfutil.py
+++ b/hgext/largefiles/lfutil.py
@@ -261,11 +261,10 @@
st = wctx[lfile].lstat()
mode = st.st_mode
size = st.st_size
- mtime = timestamp.mtime_of(st)
- cache_data = (mode, size, mtime)
- # We should consider using the mtime_boundary logic here,
- # but largefile never actually had ambiguity protection before.
- lfdirstate.set_clean(lfile, cache_data)
+ mtime = timestamp.reliable_mtime_of(st, mtime_boundary)
+ if mtime is not None:
+ cache_data = (mode, size, mtime)
+ lfdirstate.set_clean(lfile, cache_data)
return s
To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20211124/31801dfd/attachment.html>
More information about the Mercurial-patches
mailing list