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 @@ 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 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 @@ 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 @@ 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