annotate tests/test-evolve-content-divergence.t @ 3790:5b9e3aaa6da8

evolve: prompt user for branch selection while resolving content-divergence When resolving content-divergence, there can be case when both the content-divergent changesets are on different named branches. In that case, we are not sure which branch should the resolution commit should be on. This patch adds logic to prompt user to choose the branch which the resolution commit should be on and then creates the new resolution commit on that branch. This also adds a new test file which have tests for the branch selection feature we have added.
author Pulkit Goyal <7895pulkit@gmail.com>
date Mon, 04 Jun 2018 04:03:02 +0530
parents
children ee78135b2f45
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3790
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
1 ** Test for handling of content divergent changesets by `hg evolve` **
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
2 ====================================================================
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
3
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
4 $ cat >> $HGRCPATH <<EOF
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
5 > [alias]
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
6 > glog = log -GT "{rev}:{node|short} {desc|firstline}\n ({bookmarks}) [{branch}] {phase}"
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
7 > [extensions]
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
8 > EOF
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
9 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
10
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
11 $ hg init cdiv
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
12 $ cd cdiv
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
13 $ echo ".*\.orig" > .hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
14 $ hg add .hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
15 $ hg ci -m "added hgignore"
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
16 $ for ch in a b c d; do echo foo > $ch; hg add $ch; hg ci -qm "added "$ch; done;
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
17
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
18 $ hg glog
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
19 @ 4:c41c793e0ef1 added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
20 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
21 o 3:ca1b80f7960a added c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
22 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
23 o 2:b1661037fa25 added b
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
24 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
25 o 1:c7586e2a9264 added a
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
26 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
27 o 0:8fa14d15e168 added hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
28 () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
29
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
30 Creating content-divergence with branch change
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
31 ----------------------------------------------
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
32
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
33 $ hg branch -r . foobar
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
34 changed branch on 1 changesets
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
35
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
36 $ hg up c41c793e0ef1 --hidden
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
37 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
38 updated to hidden changeset c41c793e0ef1
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
39 (hidden revision 'c41c793e0ef1' was rewritten as: 9e5dffcb3d48)
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
40 working directory parent is obsolete! (c41c793e0ef1)
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
41 (use 'hg evolve' to update to its successor: 9e5dffcb3d48)
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
42 $ echo bar > d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
43 $ hg branch watwat
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
44 marked working directory as branch watwat
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
45 $ hg amend
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
46 2 new content-divergent changesets
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
47
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
48 $ hg glog
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
49 @ 6:264b04f771fb added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
50 | () [watwat] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
51 | * 5:9e5dffcb3d48 added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
52 |/ () [foobar] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
53 o 3:ca1b80f7960a added c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
54 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
55 o 2:b1661037fa25 added b
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
56 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
57 o 1:c7586e2a9264 added a
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
58 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
59 o 0:8fa14d15e168 added hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
60 () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
61
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
62 $ hg evolve --content-divergent --config ui.interactive=True<<EOF
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
63 > c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
64 > EOF
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
65 merge:[6] added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
66 with: [5] added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
67 base: [4] added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
68 merging "other" content-divergent changeset '9e5dffcb3d48'
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
69 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
70 content divergent changesets on different branches.
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
71 choose branch for the resolution changeset. (a) default or (b) watwat or (c) foobar? c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
72 working directory is now at 23a4467c278e
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
73
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
74 $ hg glog
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
75 @ 7:23a4467c278e added d
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
76 | () [foobar] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
77 o 3:ca1b80f7960a added c
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
78 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
79 o 2:b1661037fa25 added b
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
80 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
81 o 1:c7586e2a9264 added a
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
82 | () [default] draft
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
83 o 0:8fa14d15e168 added hgignore
5b9e3aaa6da8 evolve: prompt user for branch selection while resolving content-divergence
Pulkit Goyal <7895pulkit@gmail.com>
parents:
diff changeset
84 () [default] draft