mercurial/templates/map-cmdline.bisect
author Gregory Szorc <gregory.szorc@gmail.com>
Sun, 17 Jan 2016 14:14:15 -0800
changeset 27907 e219dbfd0342
parent 25007 7c324f65e4ef
child 34714 f4aeb952ab77
permissions -rw-r--r--
localrepo: don't reference transaction from hook closure (issue5043) Before, the hook() closure (which is called as part of locking hooks) would maintain a reference to a transaction instance (which should be finalized by the time lock hooks are called). Because we accumulate hook() instances when there are multiple transactions per lock, this would result in holding references to the transaction instances which would lead to higher memory utilization. Creating a reference to the hook arguments dict minimizes the number of objects that are kept alive until the lock release hook runs, minimizing memory "leaks."

%include map-cmdline.default

changeset = '{cset}{lbisect}{branches}{bookmarks}{tags}{parents}{user}{ldate}{summary}\n'
changeset_quiet = '{lshortbisect} {rev}:{node|short}\n'
changeset_verbose = '{cset}{lbisect}{branches}{bookmarks}{tags}{parents}{user}{ldate}{lfiles}{lfile_copies_switch}{description}\n'
changeset_debug = '{fullcset}{lbisect}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{user}{ldate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n'

# We take the zeroth word in order to omit "(implicit)" in the label
bisectlabel = ' bisect.{word('0', bisect)}'

lbisect ='{label("log.bisect{if(bisect, bisectlabel)}",
                                "bisect:      {bisect}\n")}'
lshortbisect ='{label("log.bisect{if(bisect, bisectlabel)}",
                                    "{bisect|shortbisect}")}'