Teach bdiff to support buffer objects
manifest.add gives revlog.addrevision a buffer object, which may
be cached and used for a second call in the same session (as mq does
when pushing multiple patches). The other option would be to cast the
buffer to str when caching it.
#!/bin/sh
hg init
echo foo > a
hg add a
hg commit -m "1" -d "1000000 0"
hg verify
chmod -r .hg/data/a.i
hg verify 2>/dev/null || echo verify failed
chmod +r .hg/data/a.i
hg verify 2>/dev/null || echo verify failed
chmod -w .hg/data/a.i
echo barber > a
hg commit -m "2" -d "1000000 0" 2>/dev/null || echo commit failed