tests/test-rebase-templates.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Mon, 29 May 2023 04:26:39 +0200
changeset 50636 c90ea9bbf327
parent 45796 e9555305c5c6
permissions -rw-r--r--
stream-clone: drop the _emit_v2 function It has no user left.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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]