Never apply string formatting to generated errors with util.Abort.
Otherwise error messages containing % chars yield errors or worse.
Fixed (hopefully) all users of util.Abort.
changeset = '{rev}{tags}{parents} {node|short} {date|isodate} {author|user}\n {desc|firstline|strip}\n\n'
changeset_quiet = '{rev}:{node|short}\n'
start_tags = '['
tag = '{tag},'
last_tag = '{tag}]'
start_parents = ':'
parent = '{rev},'
last_parent = '{rev}'