Mercurial > hg
changeset 48140:98b3eb6c1479
dirstate: align the dirstatemap's API to the data change
We are passing different data, so lets simplify the dirstatemap API too.
Differential Revision: https://phab.mercurial-scm.org/D11583
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 01 Oct 2021 01:27:53 +0200 |
parents | ab5a7fdbf75c |
children | 42ab0bcb6ded |
files | mercurial/dirstate.py mercurial/dirstatemap.py |
diffstat | 2 files changed, 10 insertions(+), 32 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dirstate.py Fri Oct 01 18:49:33 2021 +0200 +++ b/mercurial/dirstate.py Fri Oct 01 01:27:53 2021 +0200 @@ -516,12 +516,7 @@ wc_tracked = False else: wc_tracked = entry.tracked - possibly_dirty = False - if p1_tracked and wc_tracked: - # the underlying reference might have changed, we will have to - # check it. - possibly_dirty = True - elif not (p1_tracked or wc_tracked): + if not (p1_tracked or wc_tracked): # the file is no longer relevant to anyone if self._map.get(filename) is not None: self._map.reset_state(filename) @@ -529,10 +524,6 @@ elif (not p1_tracked) and wc_tracked: if entry is not None and entry.added: return # avoid dropping copy information (maybe?) - elif p1_tracked and not wc_tracked: - pass - else: - assert False, 'unreachable' # this mean we are doing call for file we do not really care about the # data (eg: added or removed), however this should be a minor overhead @@ -545,7 +536,9 @@ filename, wc_tracked, p1_tracked, - possibly_dirty=possibly_dirty, + # the underlying reference might have changed, we will have to + # check it. + has_meaningful_mtime=False, parentfiledata=parentfiledata, ) if ( @@ -616,11 +609,8 @@ filename, wc_tracked, p1_tracked, - p2_tracked=p2_tracked, - merged=merged, - clean_p1=clean_p1, - clean_p2=clean_p2, - possibly_dirty=possibly_dirty, + p2_info=merged or clean_p2, + has_meaningful_mtime=not possibly_dirty, parentfiledata=parentfiledata, ) if ( @@ -773,7 +763,6 @@ f, wc_tracked=True, p1_tracked=True, - possibly_dirty=True, ) for f in to_drop: self._map.reset_state(f)
--- a/mercurial/dirstatemap.py Fri Oct 01 18:49:33 2021 +0200 +++ b/mercurial/dirstatemap.py Fri Oct 01 01:27:53 2021 +0200 @@ -173,11 +173,9 @@ filename, wc_tracked=False, p1_tracked=False, - p2_tracked=False, - merged=False, - clean_p1=False, - clean_p2=False, - possibly_dirty=False, + p2_info=False, + has_meaningful_mtime=True, + has_meaningful_data=True, parentfiledata=None, ): """Set a entry to a given state, diregarding all previous state @@ -189,25 +187,16 @@ dirstate map does not see any point at having one for this file anymore. """ - if merged and (clean_p1 or clean_p2): - msg = b'`merged` argument incompatible with `clean_p1`/`clean_p2`' - raise error.ProgrammingError(msg) # copy information are now outdated # (maybe new information should be in directly passed to this function) self.copymap.pop(filename, None) - if not (p1_tracked or p2_tracked or wc_tracked): + if not (p1_tracked or p2_info or wc_tracked): old_entry = self._map.get(filename) self._drop_entry(filename) self._dirs_decr(filename, old_entry=old_entry) return - p2_info = merged or clean_p2 - if merged: - assert p1_tracked - - has_meaningful_mtime = not possibly_dirty - old_entry = self._map.get(filename) self._dirs_incr(filename, old_entry) entry = DirstateItem(