# # # patch "ChangeLog" # from [3b0faf979ea7bb1aee21366128eb7f77cbb29f58] # to [3638ef55500b6229ef4169355e7dcc93cd72c1e6] # # patch "xdelta.cc" # from [37392c3da669a727508f0a65df42b21495b42ac2] # to [a57c772931f7180e345943eb37166d1f51fef8ce] # ============================================================ --- ChangeLog 3b0faf979ea7bb1aee21366128eb7f77cbb29f58 +++ ChangeLog 3638ef55500b6229ef4169355e7dcc93cd72c1e6 @@ -1,3 +1,9 @@ +2006-05-09 Graydon Hoare + + * xdelta.cc (copied_extent::operator<): Fix ordering bug which + caused an unfortunate degradation in inverse delta quality, + particularly on ChangeLogs. + 2006-05-07 Graydon Hoare * database.{cc,hh} (pending_writes): New fulltext write buffer, ============================================================ --- xdelta.cc 37392c3da669a727508f0a65df42b21495b42ac2 +++ xdelta.cc a57c772931f7180e345943eb37166d1f51fef8ce @@ -649,7 +649,8 @@ string::size_type len; bool operator<(copied_extent const & other) const { - return old_pos < other.old_pos; + return (old_pos < other.old_pos) || + (old_pos == other.old_pos && len > other.len); } };