mercurial/revlog.py
changeset 5909 f45f7390c1c5
parent 5659 3da652f2039c
child 5910 b9a830fa10f6
equal deleted inserted replaced
5908:afa1e6122be7 5909:f45f7390c1c5
  1236             end = self.end(t)
  1236             end = self.end(t)
  1237 
  1237 
  1238         return node
  1238         return node
  1239 
  1239 
  1240     def strip(self, rev, minlink):
  1240     def strip(self, rev, minlink):
  1241         if self.count() == 0 or rev >= self.count():
  1241         if self.count() == 0:
  1242             return
  1242             return
  1243 
  1243 
  1244         if isinstance(self.index, lazyindex):
  1244         if isinstance(self.index, lazyindex):
  1245             self._loadindexmap()
  1245             self._loadindexmap()
  1246 
  1246 
  1247         # When stripping away a revision, we need to make sure it
  1247         for rev in xrange(0, self.count()):
  1248         # does not actually belong to an older changeset.
  1248             if self.index[rev][4] >= minlink:
  1249         # The minlink parameter defines the oldest revision
  1249                 break
  1250         # we're allowed to strip away.
  1250         else:
  1251         while minlink > self.index[rev][4]:
  1251             return
  1252             rev += 1
       
  1253             if rev >= self.count():
       
  1254                 return
       
  1255 
  1252 
  1256         # first truncate the files on disk
  1253         # first truncate the files on disk
  1257         end = self.start(rev)
  1254         end = self.start(rev)
  1258         if not self._inline:
  1255         if not self._inline:
  1259             df = self.opener(self.datafile, "a")
  1256             df = self.opener(self.datafile, "a")