##// END OF EJS Templates
interfaces: convert `imanifestrevisionstored` to a Protocol class...
interfaces: convert `imanifestrevisionstored` to a Protocol class This is similar to 1df97507c6b8 for `ipeer`, because the Protocol nature needs to be explicit on each class, as it isn't inherited. While we're here, make the methods abstract. There's some background info on this in f5d134e57f51 and fd200f5bcaea, but in short, the plan is to explicitly subclass this instead of relying on structured typing, and explicit inheritence will see this as a method implementation that returns None at runtime (regardless of how it is typed), instead of a mandatory function for the subclass to supply. The `Protocol` class has `abc.ABCMeta` as the metaclass, so there's nothing more to do with the inheritence list.

File last commit:

r38469:b45c353e default
r53372:cdd4bc69 default
Show More
map-cmdline.show
25 lines | 1.1 KiB | text/plain | TextLexer
# 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.
%include map-cmdline.default
[templates]
showbookmarks = '{if(active, "*", " ")} {pad(bookmark, longestbookmarklen + 4)}{shortest(node, nodelen)}\n'
showwork = '{cset_shortnode}{namespaces % cset_namespace} {cset_shortdesc}'
showstack = '{showwork}'
cset_shortnode = '{labelcset(shortest(node, nodelen))}'
# 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(filter_tags(names),
" ({label('log.{colorname}', join(filter_tags(names), ' '))})")}'
names_others = '{if(names, " ({label('log.{colorname}', join(names, ' '))})")}'
cset_shortdesc = '{label("log.description", desc|firstline)}'
[templatealias]
filter_tags(names) = filter(names, ifeq(name, 'tip', '', name))