diff -r 8bbb1abb9d19 -r 6e559391f96e mercurial/dirstate.py --- a/mercurial/dirstate.py Thu Feb 17 06:41:54 2022 +0100 +++ b/mercurial/dirstate.py Thu Feb 17 07:34:49 2022 +0100 @@ -101,7 +101,7 @@ sparsematchfn, nodeconstants, use_dirstate_v2, - use_tracked_key=False, + use_tracked_hint=False, ): """Create a new dirstate object. @@ -110,7 +110,7 @@ the dirstate. """ self._use_dirstate_v2 = use_dirstate_v2 - self._use_tracked_key = use_tracked_key + self._use_tracked_hint = use_tracked_hint self._nodeconstants = nodeconstants self._opener = opener self._validate = validate @@ -127,7 +127,7 @@ self._filecache = {} self._parentwriters = 0 self._filename = b'dirstate' - self._filename_tk = b'dirstate-tracked-key' + self._filename_th = b'dirstate-tracked-hint' self._pendingfilename = b'%s.pending' % self._filename self._plchangecallbacks = {} self._origpl = None @@ -721,17 +721,9 @@ if not self._dirty: return - write_key = self._use_tracked_key and self._dirty_tracked_set + write_key = self._use_tracked_hint and self._dirty_tracked_set if tr: # delay writing in-memory changes out - if write_key: - tr.addfilegenerator( - b'dirstate-0-key-pre', - (self._filename_tk,), - lambda f: self._write_tracked_key(tr, f), - location=b'plain', - post_finalize=True, - ) tr.addfilegenerator( b'dirstate-1-main', (self._filename,), @@ -742,33 +734,28 @@ if write_key: tr.addfilegenerator( b'dirstate-2-key-post', - (self._filename_tk,), - lambda f: self._write_tracked_key(tr, f), + (self._filename_th,), + lambda f: self._write_tracked_hint(tr, f), location=b'plain', post_finalize=True, ) return file = lambda f: self._opener(f, b"w", atomictemp=True, checkambig=True) - if write_key: - # we change the key-file before changing the dirstate to make sure - # reading invalidate there cache before we start writing - with file(self._filename_tk) as f: - self._write_tracked_key(tr, f) with file(self._filename) as f: self._writedirstate(tr, f) if write_key: # we update the key-file after writing to make sure reader have a # key that match the newly written content - with file(self._filename_tk) as f: - self._write_tracked_key(tr, f) + with file(self._filename_th) as f: + self._write_tracked_hint(tr, f) - def delete_tracked_key(self): - """remove the tracked_key file + def delete_tracked_hint(self): + """remove the tracked_hint file To be used by format downgrades operation""" - self._opener.unlink(self._filename_tk) - self._use_tracked_key = False + self._opener.unlink(self._filename_th) + self._use_tracked_hint = False def addparentchangecallback(self, category, callback): """add a callback to be called when the wd parents are changed @@ -793,7 +780,7 @@ self._dirty = False self._dirty_tracked_set = False - def _write_tracked_key(self, tr, f): + def _write_tracked_hint(self, tr, f): key = node.hex(uuid.uuid4().bytes) f.write(b"1\n%s\n" % key) # 1 is the format version