# HG changeset patch # User Pierre-Yves David # Date 1637272145 -3600 # Node ID 4237be881bb6f3f1334c9f4f31625da1fd6a8173 # Parent 991e6f728b50aed9a6990134f2e1b23d5a995b10 status: adapt the "keyword" extensions to gather stats at lookup time See main core code for details. We don't factor the code in a common function yet, because we will have to adapt a bit more things in the keyword case at the end of the series. Differential Revision: https://phab.mercurial-scm.org/D11787 diff -r 991e6f728b50 -r 4237be881bb6 hgext/keyword.py --- a/hgext/keyword.py Thu Nov 18 22:46:50 2021 +0100 +++ b/hgext/keyword.py Thu Nov 18 22:49:05 2021 +0100 @@ -116,6 +116,7 @@ dateutil, stringutil, ) +from mercurial.dirstateutils import timestamp cmdtable = {} command = registrar.command(cmdtable) @@ -326,6 +327,7 @@ msg = _(b'overwriting %s expanding keywords\n') else: msg = _(b'overwriting %s shrinking keywords\n') + wctx = self.repo[None] for f in candidates: if self.restrict: data = self.repo.file(f).read(mf[f]) @@ -356,7 +358,12 @@ fp.write(data) fp.close() if kwcmd: - self.repo.dirstate.set_clean(f) + s = wctx[f].lstat() + mode = s.st_mode + size = s.st_size + mtime = timestamp.mtime_of(s) + cache_data = (mode, size, mtime) + self.repo.dirstate.set_clean(f, cache_data) elif self.postcommit: self.repo.dirstate.update_file_p1(f, p1_tracked=True)