Mercurial > hg
changeset 38850:6104b203bec8
index: replace insert(-1, e) method by append(e) method
I want to make index[len(index) - 1] be the tip revision, not null
revision as it is today. insert(-1, e) will then make little
sense. Since insert() currently requires the first argument to be -1,
it seems simpler to replace it by a method that allows insertion only
at the end.
Note that revlogoldindex already has this method (by virtue of
extending list).
Differential Revision: https://phab.mercurial-scm.org/D4021
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 01 Aug 2018 10:57:14 -0700 |
parents | da5a666f0f78 |
children | 781b2720d2ac |
files | mercurial/bundlerepo.py mercurial/cext/parsers.c mercurial/cext/revlog.c mercurial/policy.py mercurial/pure/parsers.py mercurial/revlog.py mercurial/unionrepo.py |
diffstat | 7 files changed, 10 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/bundlerepo.py Fri Jul 20 14:25:59 2018 -0700 +++ b/mercurial/bundlerepo.py Wed Aug 01 10:57:14 2018 -0700 @@ -80,7 +80,7 @@ # start, size, full unc. size, base (unused), link, p1, p2, node e = (revlog.offset_type(start, flags), size, -1, baserev, link, self.rev(p1), self.rev(p2), node) - self.index.insert(-1, e) + self.index.append(e) self.nodemap[node] = n self.bundlerevs.add(n) n += 1
--- a/mercurial/cext/parsers.c Fri Jul 20 14:25:59 2018 -0700 +++ b/mercurial/cext/parsers.c Wed Aug 01 10:57:14 2018 -0700 @@ -713,7 +713,7 @@ void manifest_module_init(PyObject *mod); void revlog_module_init(PyObject *mod); -static const int version = 5; +static const int version = 6; static void module_init(PyObject *mod) {
--- a/mercurial/cext/revlog.c Fri Jul 20 14:25:59 2018 -0700 +++ b/mercurial/cext/revlog.c Wed Aug 01 10:57:14 2018 -0700 @@ -272,16 +272,11 @@ return -1; } -static PyObject *index_insert(indexObject *self, PyObject *args) +static PyObject *index_append(indexObject *self, PyObject *obj) { - PyObject *obj; char *node; - int index; Py_ssize_t len; - if (!PyArg_ParseTuple(args, "iO", &index, &obj)) - return NULL; - if (!PyTuple_Check(obj) || PyTuple_GET_SIZE(obj) != 8) { PyErr_SetString(PyExc_TypeError, "8-tuple required"); return NULL; @@ -292,15 +287,6 @@ len = index_length(self); - if (index < 0) - index += len; - - if (index != len - 1) { - PyErr_SetString(PyExc_IndexError, - "insert only supported at index -1"); - return NULL; - } - if (self->added == NULL) { self->added = PyList_New(0); if (self->added == NULL) @@ -311,7 +297,7 @@ return NULL; if (self->nt) - nt_insert(self, node, index); + nt_insert(self, node, len - 1); Py_CLEAR(self->headrevs); Py_RETURN_NONE; @@ -2065,8 +2051,8 @@ "get filtered head revisions"}, /* Can always do filtering */ {"deltachain", (PyCFunction)index_deltachain, METH_VARARGS, "determine revisions with deltas to reconstruct fulltext"}, - {"insert", (PyCFunction)index_insert, METH_VARARGS, - "insert an index entry"}, + {"append", (PyCFunction)index_append, METH_O, + "append an index entry"}, {"partialmatch", (PyCFunction)index_partialmatch, METH_VARARGS, "match a potentially ambiguous node ID"}, {"shortest", (PyCFunction)index_shortest, METH_VARARGS,
--- a/mercurial/policy.py Fri Jul 20 14:25:59 2018 -0700 +++ b/mercurial/policy.py Wed Aug 01 10:57:14 2018 -0700 @@ -69,7 +69,7 @@ (r'cext', r'bdiff'): 3, (r'cext', r'mpatch'): 1, (r'cext', r'osutil'): 4, - (r'cext', r'parsers'): 5, + (r'cext', r'parsers'): 6, } # map import request to other package or module
--- a/mercurial/pure/parsers.py Fri Jul 20 14:25:59 2018 -0700 +++ b/mercurial/pure/parsers.py Wed Aug 01 10:57:14 2018 -0700 @@ -41,8 +41,7 @@ def __len__(self): return self._lgt + len(self._extra) + 1 - def insert(self, i, tup): - assert i == -1 + def append(self, tup): self._extra.append(tup) def _fix_index(self, i):
--- a/mercurial/revlog.py Fri Jul 20 14:25:59 2018 -0700 +++ b/mercurial/revlog.py Wed Aug 01 10:57:14 2018 -0700 @@ -2549,7 +2549,7 @@ e = (offset_type(offset, flags), l, textlen, base, link, p1r, p2r, node) - self.index.insert(-1, e) + self.index.append(e) self.nodemap[node] = curr entry = self._io.packentry(e, self.node, self.version, curr)
--- a/mercurial/unionrepo.py Fri Jul 20 14:25:59 2018 -0700 +++ b/mercurial/unionrepo.py Wed Aug 01 10:57:14 2018 -0700 @@ -73,7 +73,7 @@ # I have no idea if csize is valid in the base revlog context. e = (flags, None, rsize, base, link, self.rev(p1node), self.rev(p2node), node) - self.index.insert(-1, e) + self.index.append(e) self.nodemap[node] = n self.bundlerevs.add(n) n += 1