[PATCH 11 of 12] Make strip overlay-aware

Brendan Cully brendan at kublai.com
Tue Jan 2 15:42:23 CST 2007


# HG changeset patch
# User Brendan Cully <brendan at kublai.com>
# Date 1167777087 18000
# Node ID 849968ec2c182ce364bac6ba3ea12200db41965d
# Parent  c549268c803cb9b9aa0776cd5d68ccebc4d7ee2e
Make strip overlay-aware

diff --git a/hgext/mq.py b/hgext/mq.py
--- a/hgext/mq.py
+++ b/hgext/mq.py
@@ -649,6 +649,10 @@ class queue:
         # TODO delete the undo files, and handle undo of merge sets
         pp = chlog.parents(rev)
         revnum = chlog.rev(rev)
+
+        if revnum <= chlog.startrev:
+            raise util.Abort(_("overlay starts at revision %d") %
+                             chlog.startrev)
 
         if update:
             self.check_localchanges(repo, refresh=False)
diff --git a/mercurial/revlog.py b/mercurial/revlog.py
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -1363,9 +1363,9 @@ class revlog(object):
         if not self.inlinedata():
             df = self.opener(self.datafile, "a")
             df.truncate(end)
-            end = rev * struct.calcsize(self.indexformat)
-        else:
-            end += rev * struct.calcsize(self.indexformat)
+            end = (rev - self.startrev) * struct.calcsize(self.indexformat)
+        else:
+            end += (rev - self.startrev) * struct.calcsize(self.indexformat)
 
         indexf = self.opener(self.indexfile, "a")
         indexf.truncate(end)


More information about the Mercurial-devel mailing list