tests/test-topic-fold.t
author Martin von Zweigbergk <martinvonz@google.com>
Fri, 19 Apr 2019 09:41:39 -0700
changeset 4607 d314deb12f08
parent 4067 fb4801478d5d
permissions -rw-r--r--
evolve: run in a single transaction This speeds up `hg evolve --all` of a stack of 24 commits in the hg repo from 11.5s to 3.7s (3x). As can be seen in the tests, it also avoid some warnings about transiently unstable commits.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     1
test of the fold command
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     2
------------------------
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     3
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     4
  $ cat >> $HGRCPATH <<EOF
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     5
  > [defaults]
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     6
  > amend=-d "0 0"
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     7
  > fold=-d "0 0"
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     8
  > split=-d "0 0"
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
     9
  > amend=-d "0 0"
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    10
  > [web]
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    11
  > push_ssl = false
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    12
  > allow_push = *
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    13
  > [phases]
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    14
  > publish = False
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    15
  > [diff]
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    16
  > git = 1
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    17
  > unified = 0
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    18
  > [ui]
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    19
  > interactive = true
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    20
  > [extensions]
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    21
  > EOF
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    22
  $ echo "topic=$(echo $(dirname $TESTDIR))/hgext3rd/topic/" >> $HGRCPATH
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    23
  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    24
  $ mkcommit() {
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    25
  >    echo "$1" > "$1"
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    26
  >    hg add "$1"
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    27
  >    hg ci -m "add $1" $2 $3
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    28
  > }
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    29
  $ logtopic() {
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    30
  >    hg log -G -T "{rev}:{node}\ntopics: {topics}" 
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    31
  > }
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    32
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    33
Check that fold keep the topic if all revisions have the topic
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    34
--------------------------------------------------------------
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    35
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    36
  $ hg init testfold
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    37
  $ cd testfold
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    38
  $ mkcommit ROOT
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    39
  $ hg topic myfeature
2985
f63c97c01f92 topics/ui: signal when the topics command creates a new (empty) topic
Aurélien Campéas
parents: 2984
diff changeset
    40
  marked working directory as topic: myfeature
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    41
  $ mkcommit feature1
2988
62201935e1a7 topics/ui: detect and signal when an empty changeset becomes non-empty
Aurélien Campéas
parents: 2986
diff changeset
    42
  active topic 'myfeature' grew its first changeset
3769
1bc4b0807c37 topic: display a hint pointing at help when a topic becomes non-empty
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 3397
diff changeset
    43
  (see 'hg help topics' for more information)
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    44
  $ mkcommit feature2
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    45
  $ logtopic
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    46
  @  2:d76a6166b18c835be9a487c5e21c7d260f0a1676
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    47
  |  topics: myfeature
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    48
  o  1:39e7a938055e87615edf675c24a10997ff05bb06
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    49
  |  topics: myfeature
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    50
  o  0:3e7df3b3b17c6deb4a1c70e790782fdf17af96a7
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    51
     topics:
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    52
  $ hg fold --exact -r "(tip~1)::" -m "folded"
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    53
  2 changesets folded
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    54
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    55
  $ hg stack
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    56
  ### topic: myfeature
2997
a61634f52742 topic: try to clarify the "branch" part in stack
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 2988
diff changeset
    57
  ### target: default (branch)
4067
fb4801478d5d stack: display 's#' instead of 't#' and 'b#'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3769
diff changeset
    58
  s1@ folded (current)
fb4801478d5d stack: display 's#' instead of 't#' and 'b#'
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3769
diff changeset
    59
  s0^ add ROOT (base)
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    60
  $ logtopic
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    61
  @  3:4fd43e5bdc443dc8489edffac19bd8f93ccf1a5c
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    62
  |  topics: myfeature
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    63
  o  0:3e7df3b3b17c6deb4a1c70e790782fdf17af96a7
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    64
     topics:
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    65
  $ hg summary
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    66
  parent: 3:4fd43e5bdc44 tip
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    67
   folded
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    68
  branch: default
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    69
  commit: (clean)
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    70
  update: (current)
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    71
  phases: 2 draft
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    72
  topic:  myfeature
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    73
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    74
Check that fold dismis the topic if not all revisions have the topic
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    75
--------------------------------------------------------------------
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    76
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    77
(I'm not sure this behavior make senses, but now it is tested)
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    78
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    79
  $ hg topic --clear
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    80
  $ mkcommit feature3
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    81
  created new head
3397
f7129e3d5a38 topic: suggest using topic when user creates a new head on branch
Pulkit Goyal <7895pulkit@gmail.com>
parents: 2997
diff changeset
    82
  (consider using topic for lightweight branches. See 'hg help topic')
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    83
  $ hg topic myotherfeature
2985
f63c97c01f92 topics/ui: signal when the topics command creates a new (empty) topic
Aurélien Campéas
parents: 2984
diff changeset
    84
  marked working directory as topic: myotherfeature
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    85
  $ mkcommit feature4
2988
62201935e1a7 topics/ui: detect and signal when an empty changeset becomes non-empty
Aurélien Campéas
parents: 2986
diff changeset
    86
  active topic 'myotherfeature' grew its first changeset
3769
1bc4b0807c37 topic: display a hint pointing at help when a topic becomes non-empty
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 3397
diff changeset
    87
  (see 'hg help topics' for more information)
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    88
  $ logtopic
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    89
  @  5:5ded4d6d578c37f339b0716de2e46e12ece7cbde
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    90
  |  topics: myotherfeature
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    91
  o  4:bdf6950b9b5b7c6b377c8132667c73ec86d5734f
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    92
  |  topics:
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    93
  o  3:4fd43e5bdc443dc8489edffac19bd8f93ccf1a5c
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    94
  |  topics: myfeature
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    95
  o  0:3e7df3b3b17c6deb4a1c70e790782fdf17af96a7
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    96
     topics:
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    97
  $ hg fold --exact -r "(tip~1)::" -m "folded 2"
2986
4746b92cc1f8 topics/ui: signal when an operation entails voiding a topic
Aurélien Campéas
parents: 2985
diff changeset
    98
  active topic 'myotherfeature' is now empty
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
    99
  2 changesets folded
2984
30f6030dca8f topics: signal to the end user when a topic has been forgotten
Aurélien Campéas
parents: 2776
diff changeset
   100
  clearing empty topic "myotherfeature"
2666
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   101
  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   102
  $ logtopic
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   103
  @  6:03da8f7238e9a4d708d6b8af402c91c68f271477
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   104
  |  topics:
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   105
  o  3:4fd43e5bdc443dc8489edffac19bd8f93ccf1a5c
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   106
  |  topics: myfeature
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   107
  o  0:3e7df3b3b17c6deb4a1c70e790782fdf17af96a7
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   108
     topics:
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   109
  $ hg summary
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   110
  parent: 6:03da8f7238e9 tip
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   111
   folded 2
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   112
  branch: default
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   113
  commit: (clean)
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   114
  update: (current)
2d828f448081 topic: add tests for fold behavior with topics
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
   115
  phases: 3 draft