D11786: status: adapt largefile to gather stats at lookup time
marmoute (Pierre-Yves David)
phabricator at mercurial-scm.org
Wed Nov 24 11:12:42 UTC 2021
marmoute created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
See main core time for details.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D11786
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
@@ -22,6 +22,8 @@
util,
)
+from mercurial.dirstateutils import timestamp
+
from . import (
lfcommands,
lfutil,
@@ -210,6 +212,7 @@
s.clean,
)
if parentworking:
+ wctx = repo[None]
for lfile in unsure:
standin = lfutil.standin(lfile)
if standin not in ctx1:
@@ -222,7 +225,12 @@
else:
if listclean:
clean.append(lfile)
- lfdirstate.set_clean(lfile)
+ s = wctx[lfile].lstat()
+ mode = s.st_mode
+ size = s.st_size
+ mtime = timestamp.mtime_of(s)
+ 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
@@ -32,6 +32,7 @@
vfs as vfsmod,
)
from mercurial.utils import hashutil
+from mercurial.dirstateutils import timestamp
shortname = b'.hglf'
shortnameslash = shortname + b'/'
@@ -247,6 +248,7 @@
match, subrepos=[], ignored=False, clean=False, unknown=False
)
modified, clean = s.modified, s.clean
+ wctx = repo[None]
for lfile in unsure:
try:
fctx = pctx[standin(lfile)]
@@ -256,7 +258,12 @@
modified.append(lfile)
else:
clean.append(lfile)
- lfdirstate.set_clean(lfile)
+ st = wctx[lfile].lstat()
+ mode = st.st_mode
+ size = st.st_size
+ mtime = timestamp.mtime_of(st)
+ cache_data = (mode, size, mtime)
+ lfdirstate.set_clean(lfile, cache_data)
return s
To: marmoute, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list