##// END OF EJS Templates
fileset: detect unintentional existing() invocation at runtime...
fileset: detect unintentional existing() invocation at runtime A fileset predicate can invoke 'matchctx.existing()' successfully, even if it isn't marked as "existing caller". It is aborted only in some corner cases: e.g. there were one deleted file in the working directory (see 8a0513bf030a for detail). This patch makes 'matchctx.existing()' invocation abort if not '_existingenabled', which is true only while "existing caller" running. After this changes, non-"existing caller" predicate function is aborted immediately, whenever it invokes 'matchctx.existing()'. This prevent developer from forgetting to mark a predicate as "existing caller". BTW, unintentional 'matchctx.status()' invocation can be detected easily without any additional trick like this patch, because it returns 'None' if a predicate isn't marked as "status caller", and referring field (e.g. '.modified') of it is always aborted.

File last commit:

r25628:9c647f42 default
r27464:c39ecb2b default
Show More
map-cmdline.status
25 lines | 1.2 KiB | text/plain | TextLexer
Jordi Gutiérrez Hermoso
log: add a status template...
r25006 %include map-cmdline.default
# Override base templates
changeset = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{summary}{lfiles}\n'
changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{description}{lfiles}\n'
changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{user}{ldate}{extras}{description}{lfiles}\n'
# Override the file templates
lfiles = '{if(files,
label('ui.note log.files',
'files:\n'))}{lfile_mods}{lfile_adds}{lfile_copies_switch}{lfile_dels}'
# Exclude copied files, will display those in lfile_copies_switch
lfile_adds = '{file_adds % "{ifcontains(file, file_copies_switch,
'',
'{lfile_add}')}"}'
lfile_add = '{label("status.added", "A {file}\n")}'
Yuya Nishihara
templates: fix missing closing brace in map-cmdline.status...
r25628 lfile_copies_switch = '{file_copies_switch % "{lfile_copy_orig}{lfile_copy_dest}"}'
Jordi Gutiérrez Hermoso
log: add a status template...
r25006 lfile_copy_orig = '{label("status.added", "A {name}\n")}'
lfile_copy_dest = '{label("status.copied", " {source}\n")}'
lfile_mods = '{file_mods % "{label('status.modified', 'M {file}\n')}"}'
lfile_dels = '{file_dels % "{label('status.removed', 'R {file}\n')}"}'