topic: add tests for fold behavior with topics
authorBoris Feld <boris.feld@octobus.net>
Tue, 27 Jun 2017 09:49:35 +0200
changeset 2666 2d828f448081
parent 2665 0ade6e87346b
child 2667 e7079bba383d
topic: add tests for fold behavior with topics Clarify the fold behavior for keeping topics.
tests/test-topic-fold.t
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-topic-fold.t	Tue Jun 27 09:49:35 2017 +0200
@@ -0,0 +1,107 @@
+test of the fold command
+------------------------
+
+  $ cat >> $HGRCPATH <<EOF
+  > [defaults]
+  > amend=-d "0 0"
+  > fold=-d "0 0"
+  > split=-d "0 0"
+  > amend=-d "0 0"
+  > [web]
+  > push_ssl = false
+  > allow_push = *
+  > [phases]
+  > publish = False
+  > [diff]
+  > git = 1
+  > unified = 0
+  > [ui]
+  > interactive = true
+  > [extensions]
+  > hgext.graphlog=
+  > EOF
+  $ echo "topic=$(echo $(dirname $TESTDIR))/hgext3rd/topic/" >> $HGRCPATH
+  $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
+  $ mkcommit() {
+  >    echo "$1" > "$1"
+  >    hg add "$1"
+  >    hg ci -m "add $1" $2 $3
+  > }
+  $ logtopic() {
+  >    hg log -G -T "{rev}:{node}\ntopics: {topics}" 
+  > }
+
+Check that fold keep the topic if all revisions have the topic
+--------------------------------------------------------------
+
+  $ hg init testfold
+  $ cd testfold
+  $ mkcommit ROOT
+  $ hg topic myfeature
+  $ mkcommit feature1
+  $ mkcommit feature2
+  $ logtopic
+  @  2:d76a6166b18c835be9a487c5e21c7d260f0a1676
+  |  topics: myfeature
+  o  1:39e7a938055e87615edf675c24a10997ff05bb06
+  |  topics: myfeature
+  o  0:3e7df3b3b17c6deb4a1c70e790782fdf17af96a7
+     topics:
+  $ hg fold --exact -r "(tip~1)::" -m "folded"
+  2 changesets folded
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg stack
+  ### topic: myfeature
+  ### branch: default
+  t1@ folded (current)
+    ^ add ROOT
+  $ logtopic
+  @  3:4fd43e5bdc443dc8489edffac19bd8f93ccf1a5c
+  |  topics: myfeature
+  o  0:3e7df3b3b17c6deb4a1c70e790782fdf17af96a7
+     topics:
+  $ hg summary
+  parent: 3:4fd43e5bdc44 tip
+   folded
+  branch: default
+  commit: (clean)
+  update: (current)
+  phases: 2 draft
+  topic:  myfeature
+
+Check that fold dismis the topic if not all revisions have the topic
+--------------------------------------------------------------------
+
+(I'm not sure this behavior make senses, but now it is tested)
+
+  $ hg topic --clear
+  $ mkcommit feature3
+  created new head
+  $ hg topic myotherfeature
+  $ mkcommit feature4
+  $ logtopic
+  @  5:5ded4d6d578c37f339b0716de2e46e12ece7cbde
+  |  topics: myotherfeature
+  o  4:bdf6950b9b5b7c6b377c8132667c73ec86d5734f
+  |  topics:
+  o  3:4fd43e5bdc443dc8489edffac19bd8f93ccf1a5c
+  |  topics: myfeature
+  o  0:3e7df3b3b17c6deb4a1c70e790782fdf17af96a7
+     topics:
+  $ hg fold --exact -r "(tip~1)::" -m "folded 2"
+  2 changesets folded
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ logtopic
+  @  6:03da8f7238e9a4d708d6b8af402c91c68f271477
+  |  topics:
+  o  3:4fd43e5bdc443dc8489edffac19bd8f93ccf1a5c
+  |  topics: myfeature
+  o  0:3e7df3b3b17c6deb4a1c70e790782fdf17af96a7
+     topics:
+  $ hg summary
+  parent: 6:03da8f7238e9 tip
+   folded 2
+  branch: default
+  commit: (clean)
+  update: (current)
+  phases: 3 draft