# HG changeset patch # User Pierre-Yves David # Date 2021-04-15 10:33:05 # Node ID 9c4d30b079e091c21ba4ad99a522c1c86eb2a929 # Parent df2bf38ac382d173ce06e98d7ce6afb45ac9779b 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 diff --git a/mercurial/templatekw.py b/mercurial/templatekw.py --- a/mercurial/templatekw.py +++ b/mercurial/templatekw.py @@ -669,7 +669,12 @@ def showpeerurls(context, mapping): 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): diff --git a/tests/test-paths.t b/tests/test-paths.t --- a/tests/test-paths.t +++ b/tests/test-paths.t @@ -98,6 +98,9 @@ log template: 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)