namespace: introduce logfmt to show l10n-ed messages for hg log correctly
Before this patch, "_()" is used incorrectly for "tag:" and
"bookmark:" fields. "changeset_printer()" looks up keys composed at
runtime, and it prevents "xgettext" command from getting strings to be
translated from source files.
Then, *.po files merged with updated "hg.pot" lose msgids for "tag:"
and "bookmark:".
This patch introduces "logfmt" information into "namespace" to show
l10n-ed messages "hg log" (or "changeset_printer()") correctly.
For similarity to other namespaces, this patch specifies "logfmt" for
"branches" namespace, even though it isn't needed (branch information
is handled in "changeset_printer()" specially).
To find related code paths out easily, this patch adds "i18n: column
positioning ..." comment to the line composing "logfmt" by default,
even though this line itself doesn't contain any strings to be
translated.
$ hg init t
$ cd t
$ echo 1 > a
$ hg ci -qAm "first"
$ hg cp a b
$ hg mv a c
$ echo 2 >> b
$ echo 2 >> c
$ hg ci -qAm "second"
$ hg co -C 0
1 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ echo 0 > a
$ echo 1 >> a
$ hg ci -qAm "other"
$ hg merge --debug
searching for copies back to rev 1
unmatched files in other:
b
c
all copies found (* = to merge, ! = divergent, % = renamed and deleted):
src: 'a' -> dst: 'b' *
src: 'a' -> dst: 'c' *
checking for directory renames
resolving manifests
branchmerge: True, force: False, partial: False
ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6
preserving a for resolve of b
preserving a for resolve of c
removing a
b: remote moved from a -> m
updating: b 1/2 files (50.00%)
picked tool 'internal:merge' for b (binary False symlink False)
merging a and b to b
my b@add3f11052fa+ other b@17c05bb7fcb6 ancestor a@b8bf91eeebbc
premerge successful
c: remote moved from a -> m
updating: c 2/2 files (100.00%)
picked tool 'internal:merge' for c (binary False symlink False)
merging a and c to c
my c@add3f11052fa+ other c@17c05bb7fcb6 ancestor a@b8bf91eeebbc
premerge successful
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
file b
$ cat b
0
1
2
file c
$ cat c
0
1
2
$ cd ..