# HG changeset patch # User Pierre-Yves David # Date 2021-07-03 23:44:43 # Node ID 8bcae9bf9e8d2429d772102f21f6e743340f46e1 # Parent fe4641cf9b72be502d45b11ceeb5a8852ed55995 dirstate-entry: add a `added` property Lets use more semantic property instead of the `state` implementation details. Differential Revision: https://phab.mercurial-scm.org/D10968 diff --git a/mercurial/cext/parsers.c b/mercurial/cext/parsers.c --- a/mercurial/cext/parsers.c +++ b/mercurial/cext/parsers.c @@ -158,6 +158,15 @@ static PyObject *dirstatetuple_get_state return PyBytes_FromStringAndSize(&self->state, 1); }; +static PyObject *dirstatetuple_get_added(dirstateTupleObject *self) +{ + if (self->state == 'a') { + Py_RETURN_TRUE; + } else { + Py_RETURN_FALSE; + } +}; + static PyObject *dirstatetuple_get_merged(dirstateTupleObject *self) { if (self->state == 'm') { @@ -205,6 +214,7 @@ static PyObject *dirstatetuple_get_remov static PyGetSetDef dirstatetuple_getset[] = { {"state", (getter)dirstatetuple_get_state, NULL, "state", NULL}, + {"added", (getter)dirstatetuple_get_added, NULL, "added", NULL}, {"merged_removed", (getter)dirstatetuple_get_merged_removed, NULL, "merged_removed", NULL}, {"merged", (getter)dirstatetuple_get_merged, NULL, "merged", NULL}, diff --git a/mercurial/dirstate.py b/mercurial/dirstate.py --- a/mercurial/dirstate.py +++ b/mercurial/dirstate.py @@ -1346,7 +1346,7 @@ class dirstate(object): cadd(fn) elif t.merged: madd(fn) - elif state == b'a': + elif t.added: aadd(fn) elif t.removed: radd(fn) diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py +++ b/mercurial/pure/parsers.py @@ -87,6 +87,11 @@ class dirstatetuple(object): return self._state @property + def added(self): + """True if the file has been added""" + return self._state == b'a' + + @property def merged(self): """True if the file has been merged