Comments
Patch
@@ -83,7 +83,6 @@
node,
)
self.index.append(e)
- self.nodemap[node] = n
self.bundlerevs.add(n)
n += 1
@@ -217,6 +217,13 @@
self.nodemap[tup[7]] = len(self)
super(revlogoldindex, self).append(tup)
+ def __delitem__(self, i):
+ if not isinstance(i, slice) or not i.stop == -1 or i.step is not None:
+ raise ValueError(b"deleting slices only supports a:-1 with step 1")
+ for r in pycompat.xrange(i.start, len(self)):
+ del self.nodemap[self[r][7]]
+ super(revlogoldindex, self).__delitem__(i)
+
def clearcaches(self):
self.__dict__.pop('nodemap', None)
@@ -2431,8 +2438,6 @@
self._revisioncache = None
self._chaininfocache = {}
self._chunkclear()
- for x in pycompat.xrange(rev, len(self)):
- del self.nodemap[self.node(x)]
del self.index[rev:-1]
self._nodepos = None
@@ -55,6 +55,12 @@
nodemap[n] = r
return nodemap
+ def _stripnodes(self, start):
+ if 'nodemap' in vars(self):
+ for r in range(start, len(self)):
+ n = self[r][7]
+ del self.nodemap[n]
+
def clearcaches(self):
self.__dict__.pop('nodemap', None)
@@ -103,6 +109,7 @@
raise ValueError(b"deleting slices only supports a:-1 with step 1")
i = i.start
self._check_index(i)
+ self._stripnodes(i)
if i < self._lgt:
self._data = self._data[: i * indexsize]
self._lgt = i
@@ -140,6 +147,7 @@
raise ValueError(b"deleting slices only supports a:-1 with step 1")
i = i.start
self._check_index(i)
+ self._stripnodes(i)
if i < self._lgt:
self._offsets = self._offsets[:i]
self._lgt = i
@@ -93,7 +93,6 @@
node,
)
self.index.append(e)
- self.nodemap[node] = n
self.bundlerevs.add(n)
n += 1