hgext/hgk.py
changeset 3056 3dab573a4330
parent 3009 abcd6ae3cf5a
child 3060 aa1cee5b8afb
equal deleted inserted replaced
3055:11e3396e3a2b 3056:3dab573a4330
    85         date1 = date(change)
    85         date1 = date(change)
    86         empty = "0" * 40;
    86         empty = "0" * 40;
    87 
    87 
    88         for f in modified:
    88         for f in modified:
    89             # TODO get file permissions
    89             # TODO get file permissions
    90             print ":100664 100664 %s %s M\t%s\t%s" % (hg.hex(mmap[f]),
    90             print ":100664 100664 %s %s M\t%s\t%s" % (hg.short(mmap[f]),
    91                                                       hg.hex(mmap2[f]), f, f)
    91                                                       hg.short(mmap2[f]),
       
    92                                                       f, f)
    92         for f in added:
    93         for f in added:
    93             print ":000000 100664 %s %s N\t%s\t%s" % (empty, hg.hex(mmap2[f]), f, f)
    94             print ":000000 100664 %s %s N\t%s\t%s" % (empty,
       
    95                                                       hg.short(mmap2[f]),
       
    96                                                       f, f)
    94         for f in removed:
    97         for f in removed:
    95             print ":100664 000000 %s %s D\t%s\t%s" % (hg.hex(mmap[f]), empty, f, f)
    98             print ":100664 000000 %s %s D\t%s\t%s" % (hg.short(mmap[f]),
       
    99                                                       empty,
       
   100                                                       f, f)
    96     ##
   101     ##
    97 
   102 
    98     while True:
   103     while True:
    99         if opts['stdin']:
   104         if opts['stdin']:
   100             try:
   105             try:
   122             break
   127             break
   123 
   128 
   124 def catcommit(repo, n, prefix, changes=None):
   129 def catcommit(repo, n, prefix, changes=None):
   125     nlprefix = '\n' + prefix;
   130     nlprefix = '\n' + prefix;
   126     (p1, p2) = repo.changelog.parents(n)
   131     (p1, p2) = repo.changelog.parents(n)
   127     (h, h1, h2) = map(hg.hex, (n, p1, p2))
   132     (h, h1, h2) = map(hg.short, (n, p1, p2))
   128     (i1, i2) = map(repo.changelog.rev, (p1, p2))
   133     (i1, i2) = map(repo.changelog.rev, (p1, p2))
   129     if not changes:
   134     if not changes:
   130         changes = repo.changelog.read(n)
   135         changes = repo.changelog.read(n)
   131     print "tree %s" % (hg.hex(changes[0]))
   136     print "tree %s" % (hg.short(changes[0]))
   132     if i1 != -1: print "parent %s" % (h1)
   137     if i1 != -1: print "parent %s" % (h1)
   133     if i2 != -1: print "parent %s" % (h2)
   138     if i2 != -1: print "parent %s" % (h2)
   134     date_ar = changes[2]
   139     date_ar = changes[2]
   135     date = int(float(date_ar[0]))
   140     date = int(float(date_ar[0]))
   136     lines = changes[4].splitlines()
   141     lines = changes[4].splitlines()
   152 def base(ui, repo, node1, node2):
   157 def base(ui, repo, node1, node2):
   153     """Output common ancestor information"""
   158     """Output common ancestor information"""
   154     node1 = repo.lookup(node1)
   159     node1 = repo.lookup(node1)
   155     node2 = repo.lookup(node2)
   160     node2 = repo.lookup(node2)
   156     n = repo.changelog.ancestor(node1, node2)
   161     n = repo.changelog.ancestor(node1, node2)
   157     print hg.hex(n)
   162     print hg.short(n)
   158 
   163 
   159 def catfile(ui, repo, type=None, r=None, **opts):
   164 def catfile(ui, repo, type=None, r=None, **opts):
   160     """cat a specific revision"""
   165     """cat a specific revision"""
   161     # in stdin mode, every line except the commit is prefixed with two
   166     # in stdin mode, every line except the commit is prefixed with two
   162     # spaces.  This way the our caller can find the commit without magic
   167     # spaces.  This way the our caller can find the commit without magic
   274         if mask:
   279         if mask:
   275             parentstr = ""
   280             parentstr = ""
   276             if parents:
   281             if parents:
   277                 pp = repo.changelog.parents(n)
   282                 pp = repo.changelog.parents(n)
   278                 if pp[0] != hg.nullid:
   283                 if pp[0] != hg.nullid:
   279                     parentstr += " " + hg.hex(pp[0])
   284                     parentstr += " " + hg.short(pp[0])
   280                 if pp[1] != hg.nullid:
   285                 if pp[1] != hg.nullid:
   281                     parentstr += " " + hg.hex(pp[1])
   286                     parentstr += " " + hg.short(pp[1])
   282             if not full:
   287             if not full:
   283                 print hg.hex(n) + parentstr
   288                 print hg.short(n) + parentstr
   284             elif full is "commit":
   289             elif full is "commit":
   285                 print hg.hex(n) + parentstr
   290                 print hg.short(n) + parentstr
   286                 catcommit(repo, n, '    ', changes)
   291                 catcommit(repo, n, '    ', changes)
   287             else:
   292             else:
   288                 (p1, p2) = repo.changelog.parents(n)
   293                 (p1, p2) = repo.changelog.parents(n)
   289                 (h, h1, h2) = map(hg.hex, (n, p1, p2))
   294                 (h, h1, h2) = map(hg.short, (n, p1, p2))
   290                 (i1, i2) = map(repo.changelog.rev, (p1, p2))
   295                 (i1, i2) = map(repo.changelog.rev, (p1, p2))
   291 
   296 
   292                 date = changes[2][0]
   297                 date = changes[2][0]
   293                 print "%s %s:%s" % (date, h, mask),
   298                 print "%s %s:%s" % (date, h, mask),
   294                 mask = is_reachable(want_sha1, reachable, p1)
   299                 mask = is_reachable(want_sha1, reachable, p1)