revlog: make converting from inline to non-line work after a strip
The checkinlinesize function, which converts inline revlogs to non-inline,
uses the current transaction's "data" field to determine how to update the
transaction after the conversion.
This change works around the missing data field, which is not in the
transaction after a strip.
--- a/mercurial/revlog.py Tue Mar 24 12:52:53 2015 -0700
+++ b/mercurial/revlog.py Wed Mar 25 15:58:31 2015 -0400
@@ -1129,7 +1129,12 @@
% self.indexfile)
trindex = trinfo[2]
- dataoff = self.start(trindex)
+ if trindex is not None:
+ dataoff = self.start(trindex)
+ else:
+ # revlog was stripped at start of transaction, use all leftover data
+ trindex = len(self) - 1
+ dataoff = self.end(-2)
tr.add(self.datafile, dataoff)