[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