template: add a `paths` field to all entry in peerurls
This make it possible to display multiple path per name in the near future.
Differential Revision: https://phab.mercurial-scm.org/D10444
--- a/mercurial/templatekw.py Tue May 11 18:10:59 2021 +0200
+++ b/mercurial/templatekw.py Thu Apr 15 12:33:05 2021 +0200
@@ -669,7 +669,12 @@
def makemap(k):
p = paths[k]
d = {b'name': k, b'url': p.rawloc}
- d.update((o, v) for o, v in sorted(pycompat.iteritems(p.suboptions)))
+ sub_opts = util.sortdict(sorted(pycompat.iteritems(p.suboptions)))
+ d.update(sub_opts)
+ path_dict = util.sortdict()
+ path_dict[b'url'] = p.rawloc
+ path_dict.update(sub_opts)
+ d[b'urls'] = [path_dict]
return d
def format_one(k):
--- a/tests/test-paths.t Tue May 11 18:10:59 2021 +0200
+++ b/tests/test-paths.t Thu Apr 15 12:33:05 2021 +0200
@@ -98,6 +98,9 @@
expand: $TESTTMP/a/$SOMETHING/bar
$ hg log -rnull -T '{get(peerurls, "dupe")}\n'
$TESTTMP/b#tip
+ $ hg log -rnull -T '{peerurls % "{urls|json}\n"}'
+ [{"pushurl": "https://example.com/dupe", "url": "$TESTTMP/b#tip"}]
+ [{"url": "$TESTTMP/a/$SOMETHING/bar"}]
(sub options can be populated by map/dot operation)