mercurial/templates/map-cmdline.show
author Jun Wu <quark@fb.com>
Wed, 06 Sep 2017 21:08:59 -0700
changeset 34109 cf04db16f583
parent 33197 c5a07a3abe7d
child 34190 4441c1113eb2
permissions -rw-r--r--
blackbox: do not cache file objects Having the blackbox file objects cached in `ui._bbfp` could in theory be troublesome if multiple processes (ex. chg servers) have file objects referring to a same file. (Although I spent some time and failed to build a convincing test case) This patch makes blackbox re-open the file every time to make the situation better. Ideally we also need proper locking. The caching logic traces back to the commit introducing blackbox (18242716a). That commit does not have details about why caching is necessary. Consider the fact that blackbox logs are not many, it seems fine to remove the fp cache to be more confident. Differential Revision: https://phab.mercurial-scm.org/D650

# TODO there are a few deficiencies in this file:
# * The "namespace" of the labels needs to be worked out. We currently
#   piggyback on existing values so color works.
# * Obsolescence isn't considered for node labels. See _cset_labels in
#   map-cmdline.default.
showbookmarks = '{if(active, "*", " ")} {pad(bookmark, longestbookmarklen + 4)}{shortest(node, 5)}\n'

showwork = '{cset_shortnode}{namespaces % cset_namespace} {cset_shortdesc}'
showstack = '{showwork}'

cset_shortnode = '{label("log.changeset changeset.{phase}", shortest(node, 5))}'

# Treat branch and tags specially so we don't display "default" or "tip"
cset_namespace = '{ifeq(namespace, "branches", names_branches, ifeq(namespace, "tags", names_tags, names_others))}'
names_branches = '{ifeq(branch, "default", "", " ({label('log.{colorname}', branch)})")}'
names_tags = '{if(names % "{ifeq(name, 'tip', '', name)}", " ({label('log.{colorname}', join(names % "{ifeq(name, 'tip', '', name)}", ' '))})")}'
names_others = '{if(names, " ({label('log.{colorname}', join(names, ' '))})")}'

cset_shortdesc = '{label("log.description", desc|firstline)}'