annotate tests/test-rebase-templates.t @ 51686:39033e7a6e0a

convert: stringify `shlex` class argument The documentation is handwavy, but typeshed says this should be `str`[1]. I'm not sure if this is the correct encoding (vs `fsencode` or "latin1" like the tokens returned by the proxy class). While we're here, we can add a few more type hints that would have caused pytype to flag the problem. [1] https://github.com/python/typeshed/blob/6a9b53e719a139c2d6b41cf265ed0990cf438192/stdlib/shlex.pyi#L51
author Matt Harbison <matt_harbison@yahoo.com>
date Thu, 11 Jul 2024 21:16:45 -0400
parents e9555305c5c6
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
34883
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
1 Testing templating for rebase command
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
2
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
3 Setup
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
4
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
5 $ cat >> $HGRCPATH <<EOF
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
6 > [extensions]
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
7 > rebase=
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
8 > [experimental]
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
9 > evolution=createmarkers
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
10 > EOF
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
11
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
12 $ hg init repo
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
13 $ cd repo
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
14 $ for ch in a b c d; do echo foo > $ch; hg commit -Aqm "Added "$ch; done
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
15
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
16 $ hg log -G -T "{rev}:{node|short} {desc}"
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
17 @ 3:62615734edd5 Added d
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
18 |
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
19 o 2:28ad74487de9 Added c
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
20 |
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
21 o 1:29becc82797a Added b
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
22 |
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
23 o 0:18d04c59bb5d Added a
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
24
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
25 Getting the JSON output for nodechanges
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
26
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
27 $ hg rebase -s 2 -d 0 -q -Tjson
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
28 [
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
29 {
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
30 "nodechanges": {"28ad74487de9599d00d81085be739c61fc340652": ["849767420fd5519cf0026232411a943ed03cc9fb"], "62615734edd52f06b6fb9c2beb429e4fe30d57b8": ["df21b32134ba85d86bca590cbe9b8b7cbc346c53"]}
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
31 }
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
32 ]
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
33
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
34 $ hg log -G -T "{rev}:{node|short} {desc}"
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
35 @ 5:df21b32134ba Added d
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
36 |
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
37 o 4:849767420fd5 Added c
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
38 |
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
39 | o 1:29becc82797a Added b
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
40 |/
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
41 o 0:18d04c59bb5d Added a
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
42
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
43 $ hg rebase -s 1 -d 5 -q -T "{nodechanges|json}"
c858afe9c59b rebase: add support to output nodechanges
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
44 {"29becc82797a4bc11ec8880b58eaecd2ab3e7760": ["d9d6773efc831c274eace04bc13e8e6412517139"]} (no-eol)
35124
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
45
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
46 $ hg log -G -T "{rev}:{node|short} {desc}"
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
47 o 6:d9d6773efc83 Added b
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
48 |
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
49 @ 5:df21b32134ba Added d
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
50 |
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
51 o 4:849767420fd5 Added c
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
52 |
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
53 o 0:18d04c59bb5d Added a
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
54
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
55
c157bb0120a9 tests: add test for rebase template showing wrong behavior
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34883
diff changeset
56 $ hg rebase -s 6 -d 4 -q -T "{nodechanges % '{oldnode}:{newnodes % ' {node} '}'}"
35125
f56a30b844aa rebase: use fm.formatlist() and fm.formatdict() to support user template
Pulkit Goyal <7895pulkit@gmail.com>
parents: 35124
diff changeset
57 d9d6773efc831c274eace04bc13e8e6412517139: f48cd65c6dc3d2acb55da54402a5b029546e546f (no-eol)
42975
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
58
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
59 $ hg log -G -T "{rev}:{node|short} {desc}"
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
60 o 7:f48cd65c6dc3 Added b
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
61 |
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
62 | @ 5:df21b32134ba Added d
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
63 |/
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
64 o 4:849767420fd5 Added c
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
65 |
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
66 o 0:18d04c59bb5d Added a
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
67
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
68
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
69
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
70 $ hg rebase -s 7 -d 5 -q --keep -T "{nodechanges % '{oldnode}:{newnodes % ' {node} '}'}"
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
71 f48cd65c6dc3d2acb55da54402a5b029546e546f: 6f7dda91e55e728fb798f3e44dbecf0ebaa83267 (no-eol)
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
72
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
73 $ hg log -G -T "{rev}:{node|short} {desc}"
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
74 o 8:6f7dda91e55e Added b
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
75 |
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
76 | o 7:f48cd65c6dc3 Added b
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
77 | |
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
78 @ | 5:df21b32134ba Added d
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
79 |/
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
80 o 4:849767420fd5 Added c
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
81 |
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
82 o 0:18d04c59bb5d Added a
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
83
43c84b816445 rebase: track new nodes when --keep is set
Paul Gossman <pgossman@janestreet.com>
parents: 35125
diff changeset
84
45770
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
85 Respects command-templates.oneline-summary
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
86
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
87 $ hg rebase -r 7 -d 8 -n --config command-templates.oneline-summary='rev: {rev}'
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
88 starting dry-run rebase; repository will not be changed
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
89 rebasing rev: 7
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
90 note: not rebasing rev: 7, its destination already has all its changes
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
91 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
92
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
93
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
94 command-templates.oneline-summary.rebase overrides
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
95
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
96 $ hg rebase -r 7 -d 8 -n \
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
97 > --config command-templates.oneline-summary='global: {rev}' \
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
98 > --config command-templates.oneline-summary.rebase='override: {rev}'
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
99 starting dry-run rebase; repository will not be changed
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
100 rebasing override: 7
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
101 note: not rebasing override: 7, its destination already has all its changes
96fcc37a9c80 rebase: make summary template configurable, with default to shared template
Martin von Zweigbergk <martinvonz@google.com>
parents: 42975
diff changeset
102 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
45796
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
103
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
104
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
105 check namespaces and coloring (labels)
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
106
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
107 $ hg tag -l -r 7 my-tag
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
108 $ hg rebase -r 7 -d 8 -n
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
109 starting dry-run rebase; repository will not be changed
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
110 rebasing 7:f48cd65c6dc3 my-tag "Added b"
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
111 note: not rebasing 7:f48cd65c6dc3 my-tag "Added b", its destination already has all its changes
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
112 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
113 $ hg bookmark -r 7 my-bookmark
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
114 $ hg rebase -r 7 -d 8 -n
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
115 starting dry-run rebase; repository will not be changed
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
116 rebasing 7:f48cd65c6dc3 my-bookmark my-tag "Added b"
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
117 note: not rebasing 7:f48cd65c6dc3 my-bookmark my-tag "Added b", its destination already has all its changes
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
118 dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
119 $ hg rebase -r 7 -d 8 -n --color=debug
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
120 [ ui.status|starting dry-run rebase; repository will not be changed]
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
121 [ ui.status|rebasing [oneline-summary.changeset|7:f48cd65c6dc3] [oneline-summary.bookmarks|my-bookmark] [oneline-summary.tags|my-tag] "[oneline-summary.desc|Added b]"]
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
122 [ ui.warning|note: not rebasing [oneline-summary.changeset|7:f48cd65c6dc3] [oneline-summary.bookmarks|my-bookmark] [oneline-summary.tags|my-tag] "[oneline-summary.desc|Added b]", its destination already has all its changes]
e9555305c5c6 templates: include all non-branch namespaces in default one-line summary
Martin von Zweigbergk <martinvonz@google.com>
parents: 45770
diff changeset
123 [ ui.status|dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase]