annotate tests/test-evolve-stop-contentdiv.t @ 3805:2410e7063692

evolve: implement resolution of content-divergence when on differet parents This patch implements the basic version of resolution of content-divergence changesets when they are on different parents but one of the parent is gca of both the different parents. The functionality first relocates the divergent changeset which was left behind and then resolves the content-divergence like it resolves in normal cases. This is a very basic implementation because it still does not work on interrupted evolution. Test changes in this patch shows the basic functionality working. The output of dry-run is also required to be tweaked in such cased. Upcoming patches will add more tests and will improve the implementation to work during conflicts too.
author Pulkit Goyal <7895pulkit@gmail.com>
date Fri, 01 Jun 2018 19:52:06 +0530
parents 777c29ac02bf
children 7b33a6ed0539
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3761
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
1 Tests for the --stop flag for `hg evolve` command while resolving content-divergence
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
2 ==================================================================================
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
3
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
4 The `--stop` flag stops the interrupted evolution and delete the state file so
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
5 user can do other things and comeback and do evolution later on
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
6
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
7 This is testing cases when `hg evolve` command is doing content-divergence resolution.
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
8
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
9 Setup
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
10 =====
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
11
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
12 $ cat >> $HGRCPATH <<EOF
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
13 > [alias]
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
14 > glog = log -GT "{rev}:{node|short} {desc}\n ({bookmarks}) {phase}"
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
15 > [extensions]
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
16 > EOF
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
17 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
18
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
19 $ hg init stoprepo
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
20 $ cd stoprepo
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
21 $ echo ".*\.orig" > .hgignore
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
22 $ hg add .hgignore
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
23 $ hg ci -m "added hgignore"
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
24 $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
25
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
26 $ hg glog
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
27 @ 4:c41c793e0ef1 added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
28 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
29 o 3:ca1b80f7960a added c
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
30 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
31 o 2:b1661037fa25 added b
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
32 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
33 o 1:c7586e2a9264 added a
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
34 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
35 o 0:8fa14d15e168 added hgignore
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
36 () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
37
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
38 Creating content divergence, resolution of which will lead to conflicts
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
39 -----------------------------------------------------------------------
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
40
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
41 $ echo bar > d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
42 $ hg amend
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
43
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
44 $ hg up c41c793e0ef1 --hidden
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
45 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
46 updated to hidden changeset c41c793e0ef1
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
47 (hidden revision 'c41c793e0ef1' was rewritten as: e49523854bc8)
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
48 working directory parent is obsolete! (c41c793e0ef1)
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
49 (use 'hg evolve' to update to its successor: e49523854bc8)
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
50
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
51 $ echo foobar > d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
52 $ hg amend
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
53 2 new content-divergent changesets
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
54 $ hg glog --hidden
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
55 @ 6:9c1631e352d9 added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
56 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
57 | * 5:e49523854bc8 added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
58 |/ () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
59 | x 4:c41c793e0ef1 added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
60 |/ () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
61 o 3:ca1b80f7960a added c
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
62 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
63 o 2:b1661037fa25 added b
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
64 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
65 o 1:c7586e2a9264 added a
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
66 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
67 o 0:8fa14d15e168 added hgignore
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
68 () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
69
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
70 $ hg evolve --content-divergent
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
71 merge:[6] added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
72 with: [5] added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
73 base: [4] added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
74 merging "other" content-divergent changeset 'e49523854bc8'
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
75 merging d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
76 warning: conflicts while merging d! (edit, then use 'hg resolve --mark')
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
77 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
78 abort: fix conflicts and run 'hg evolve --continue' or use 'hg update -C .' to abort
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
79 [255]
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
80
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
81 $ hg evolve --stop
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
82 stopped the interrupted evolve
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
83 working directory is now at 9c1631e352d9
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
84
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
85 $ hg glog --hidden
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
86 @ 6:9c1631e352d9 added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
87 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
88 | * 5:e49523854bc8 added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
89 |/ () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
90 | x 4:c41c793e0ef1 added d
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
91 |/ () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
92 o 3:ca1b80f7960a added c
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
93 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
94 o 2:b1661037fa25 added b
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
95 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
96 o 1:c7586e2a9264 added a
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
97 | () draft
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
98 o 0:8fa14d15e168 added hgignore
777c29ac02bf content-div: add test showing `--stop` works during interrupted resolution
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
99 () draft