コード例 #1
0
ファイル: bdiff-torture.py プロジェクト: zerkella/eden
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")
コード例 #2
0
 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])),
     )
コード例 #3
0
 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
コード例 #4
0
    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)
コード例 #5
0
 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)
     )
コード例 #6
0
ファイル: perf.py プロジェクト: zerkella/eden
 def d():
     for pair in textpairs:
         mdiff.textdiff(*pair)