hgext/hgk.py
changeset 3981 180670f14045
parent 3979 e0d13267f7a4
child 4040 cc08d2543593
equal deleted inserted replaced
3980:e9460fe2f548 3981:180670f14045
    10 
    10 
    11 def difftree(ui, repo, node1=None, node2=None, *files, **opts):
    11 def difftree(ui, repo, node1=None, node2=None, *files, **opts):
    12     """diff trees from two commits"""
    12     """diff trees from two commits"""
    13     def __difftree(repo, node1, node2, files=[]):
    13     def __difftree(repo, node1, node2, files=[]):
    14         assert node2 is not None
    14         assert node2 is not None
       
    15         mmap = repo.changectx(node1).manifest()
    15         mmap2 = repo.changectx(node2).manifest()
    16         mmap2 = repo.changectx(node2).manifest()
    16         status = repo.status(node1, node2, files=files)[:5]
    17         status = repo.status(node1, node2, files=files)[:5]
    17         modified, added, removed, deleted, unknown = status
    18         modified, added, removed, deleted, unknown = status
    18 
    19 
    19         mmap = repo.changectx(node1).manifest()
       
    20         empty = hg.short(hg.nullid)
    20         empty = hg.short(hg.nullid)
    21 
    21 
    22         for f in modified:
    22         for f in modified:
    23             # TODO get file permissions
    23             # TODO get file permissions
    24             print ":100664 100664 %s %s M\t%s\t%s" % (hg.short(mmap[f]),
    24             print ":100664 100664 %s %s M\t%s\t%s" % (hg.short(mmap[f]),
   151                 if i + x >= count:
   151                 if i + x >= count:
   152                     l[chunk - x:] = [0] * (chunk - x)
   152                     l[chunk - x:] = [0] * (chunk - x)
   153                     break
   153                     break
   154                 if full != None:
   154                 if full != None:
   155                     l[x] = repo.changectx(i + x)
   155                     l[x] = repo.changectx(i + x)
       
   156                     l[x].changeset() # force reading
   156                 else:
   157                 else:
   157                     l[x] = 1
   158                     l[x] = 1
   158             for x in xrange(chunk-1, -1, -1):
   159             for x in xrange(chunk-1, -1, -1):
   159                 if l[x] != 0:
   160                 if l[x] != 0:
   160                     yield (i + x, full != None and l[x] or None)
   161                     yield (i + x, full != None and l[x] or None)