# HG changeset patch # User Yuya Nishihara # Date 1536999982 -32400 # Node ID a677261e74225af5acfba48c8354fe22ad44860d # Parent 94ca3579e84e5af4978d7539a351c25491d432a8 annotate: pass around full hex node until formatting plain output In short, this patch moves h[:12] from hexfn() to formathex() so that formathex() can test if h is the wdirhex or not. This helps switching the wdir value to wdirrev/wdirhex. See the next patch. diff -r 94ca3579e84e -r a677261e7422 mercurial/commands.py --- a/mercurial/commands.py Sat Sep 15 17:26:21 2018 +0900 +++ b/mercurial/commands.py Sat Sep 15 17:26:22 2018 +0900 @@ -303,6 +303,11 @@ ctx = scmutil.revsingle(repo, rev) rootfm = ui.formatter('annotate', opts) + if ui.debugflag: + shorthex = pycompat.identity + else: + def shorthex(h): + return h[:12] if ui.quiet: datefunc = dateutil.shortdate else: @@ -312,7 +317,7 @@ if node is None: return None else: - return rootfm.hexfunc(node) + return hex(node) if opts.get('changeset'): # omit "+" suffix which is appended to node hex def formatrev(rev): @@ -326,14 +331,15 @@ return '%d+' % ctx.p1().rev() else: return '%d ' % rev - def formathex(hex): - if hex is None: - return '%s+' % rootfm.hexfunc(ctx.p1().node()) + def formathex(h): + if h is None: + return '%s+' % shorthex(hex(ctx.p1().node())) else: - return '%s ' % hex + return '%s ' % shorthex(h) else: - hexfn = rootfm.hexfunc - formatrev = formathex = pycompat.bytestr + hexfn = hex + formatrev = b'%d'.__mod__ + formathex = shorthex opmap = [('user', ' ', lambda x: x.fctx.user(), ui.shortuser), ('rev', ' ', lambda x: x.fctx.rev(), formatrev),