template: add a `paths` field to all entry in peerurls
authorPierre-Yves David <pierre-yves.david@octobus.net>
Thu, 15 Apr 2021 12:33:05 +0200
changeset 47184 9c4d30b079e0
parent 47180 df2bf38ac382
child 47185 a2632ce1f15b
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
mercurial/templatekw.py
tests/test-paths.t
--- 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)