Mercurial > hg-stable
changeset 47686:e43128ee436f
dirstate-item: introduce a `dm_otherparent` property
See inline documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D11124
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 14 Jul 2021 22:06:13 +0200 |
parents | 265cdfaad372 |
children | e59bd6723f2f |
files | mercurial/cext/parsers.c mercurial/dirstatemap.py mercurial/pure/parsers.py |
diffstat | 3 files changed, 19 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cext/parsers.c Wed Jul 14 21:59:18 2021 +0200 +++ b/mercurial/cext/parsers.c Wed Jul 14 22:06:13 2021 +0200 @@ -150,6 +150,14 @@ Py_RETURN_FALSE; } }; +static PyObject *dm_otherparent(dirstateItemObject *self) +{ + if (self->size == dirstate_v1_from_p2) { + Py_RETURN_TRUE; + } else { + Py_RETURN_FALSE; + } +}; static PyObject *dirstate_item_need_delay(dirstateItemObject *self, PyObject *value) @@ -232,6 +240,8 @@ METH_NOARGS, "mark a file as \"possibly dirty\""}, {"dm_nonnormal", (PyCFunction)dm_nonnormal, METH_NOARGS, "True is the entry is non-normal in the dirstatemap sense"}, + {"dm_otherparent", (PyCFunction)dm_otherparent, METH_NOARGS, + "True is the entry is `otherparent` in the dirstatemap sense"}, {NULL} /* Sentinel */ };
--- a/mercurial/dirstatemap.py Wed Jul 14 21:59:18 2021 +0200 +++ b/mercurial/dirstatemap.py Wed Jul 14 22:06:13 2021 +0200 @@ -199,7 +199,7 @@ e = self._map[f] = DirstateItem(state, mode, size, mtime) if e.dm_nonnormal: self.nonnormalset.add(f) - if size == FROM_P2: + if e.dm_otherparent: self.otherparentset.add(f) def removefile(self, f, in_merge=False):
--- a/mercurial/pure/parsers.py Wed Jul 14 21:59:18 2021 +0200 +++ b/mercurial/pure/parsers.py Wed Jul 14 22:06:13 2021 +0200 @@ -195,6 +195,14 @@ """ return self.state != b'n' or self.mtime == AMBIGUOUS_TIME + @property + def dm_otherparent(self): + """True is the entry is `otherparent` in the dirstatemap sense + + There is no reason for any code, but the dirstatemap one to use this. + """ + return self._size == FROM_P2 + def v1_state(self): """return a "state" suitable for v1 serialization""" return self._state