annotate: build format string separately from annotation data
This prepares for porting to generic templater API.
Note that we cannot use '%*s' to pad white spaces because it doesn't take
into account character widths, as described in
4f5a6df2af92.
$ cat >> $HGRCPATH <<EOF
> [alias]
> tlog = log --template "{rev}:{node|short}: '{desc}' {branches}\n"
> tglog = tlog -G
> tout = out --template "{rev}:{node|short}: '{desc}' {branches}\n"
> EOF
$ hg init a
$ cd a
$ echo a > a
$ hg ci -Aqm0
$ echo foo >> a
$ hg ci -Aqm1
$ hg up -q 0
$ hg branch stable
marked working directory as branch stable
(branches are permanent and global, did you want a bookmark?)
$ echo bar >> a
$ hg ci -qm2
$ hg tglog
@ 2:7bee6c3bea3a: '2' stable
|
| o 1:3560197d8331: '1'
|/
o 0:f7b1eb17ad24: '0'
$ cd ..
$ hg clone -q a#stable b
$ cd b
$ cat .hg/hgrc
# You may want to set your username here if it is not set
# globally, or this repository requires a different
# username from your usual configuration. If you want to
# set something for all of your repositories on this
# computer, try running the command
# 'hg config --edit --global'
# [ui]
# username = Jane Doe <jdoe@example.com>
[paths]
default = $TESTTMP/a#stable (glob)
$ echo red >> a
$ hg ci -qm3
$ hg up -q default
$ echo blue >> a
$ hg ci -qm4
$ hg tglog
@ 3:f0461977a3db: '4'
|
| o 2:1d4099801a4e: '3' stable
| |
| o 1:7bee6c3bea3a: '2' stable
|/
o 0:f7b1eb17ad24: '0'
$ hg tout
comparing with $TESTTMP/a (glob)
searching for changes
2:1d4099801a4e: '3' stable
$ hg tlog -r 'outgoing()'
2:1d4099801a4e: '3' stable
$ hg tout ../a#default
comparing with ../a
searching for changes
3:f0461977a3db: '4'
$ hg tlog -r 'outgoing("../a#default")'
3:f0461977a3db: '4'
$ echo "green = ../a#default" >> .hg/hgrc
$ cat .hg/hgrc
# You may want to set your username here if it is not set
# globally, or this repository requires a different
# username from your usual configuration. If you want to
# set something for all of your repositories on this
# computer, try running the command
# 'hg config --edit --global'
# [ui]
# username = Jane Doe <jdoe@example.com>
[paths]
default = $TESTTMP/a#stable (glob)
green = ../a#default
$ hg tout green
comparing with $TESTTMP/a (glob)
searching for changes
3:f0461977a3db: '4'
$ hg tlog -r 'outgoing("green")'
3:f0461977a3db: '4'
$ cd ..