def test1(a, b): d = mdiff.textdiff(a, b) if not d: raise ValueError("empty") c = mdiff.patches(a, [d]) if c != b: raise ValueError("bad")
def assert_bdiff_applies(self, a, b): d = mdiff.textdiff(a, b) c = a if d: c = mdiff.patches(a, [d]) self.assertEqual( c, b, ("bad diff+patch result from\n %r to\n " "%r: \nbdiff: %r\npatched: %r" % (a, b, d, c[:200])), )
def showdiff(self, a, b): bin = mdiff.textdiff(a, b) pos = 0 q = 0 actions = [] while pos < len(bin): p1, p2, l = struct.unpack(">lll", bin[pos:pos + 12]) pos += 12 if p1: actions.append(a[q:p1]) actions.append(diffreplace(p1, p2, a[p1:p2], bin[pos:pos + l])) pos += l q = p2 if q < len(a): actions.append(a[q:]) return actions
def testGetFromChainDeltas(self): packdir = self.makeTempDir() rev1 = "content" rev2 = "content2" firsthash = self.getFakeHash() revisions = [ ("foo", firsthash, nullid, rev1), ("foo", self.getFakeHash(), firsthash, mdiff.textdiff(rev1, rev2)), ] store = self.createPackStore(packdir, revisions=revisions) unionstore = uniondatapackstore([store]) text = unionstore.get(revisions[1][0], revisions[1][1]) self.assertEquals(rev2, text)
def revdiff(self, node1, node2): if node1 != nullid and (self.flags(node1) or self.flags(node2)): raise error.ProgrammingError("cannot revdiff revisions with non-zero flags") return mdiff.textdiff( self.revision(node1, raw=True), self.revision(node2, raw=True) )
def d(): for pair in textpairs: mdiff.textdiff(*pair)