annotate tests/test-evolve-issue5958.t @ 4992:1eab41625dee stable

evolve: abort if deciding resolution parent is ambiguous While solving content-divergence, it could be hard to decide which cset should be treated as a resolution parent if there are multiple successors of divergent cset. i.e split case. But we are planning to make some update in handling this split case: 1) consider highest one if all splitted csets are in a single topological branch 2) still need to decide if 1) doesn't apply
author Sushil khanchi <sushilkhanchi97@gmail.com>
date Fri, 06 Dec 2019 23:43:00 +0530
parents 6d898fa6e5c3
children 8b6e2565aaf3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4849
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
1 Content divergence and trying to relocate a node on top of itself (issue5958)
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
2 https://bz.mercurial-scm.org/show_bug.cgi?id=5958
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
3
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
4 $ . $TESTDIR/testlib/common.sh
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
5
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
6 $ cat << EOF >> $HGRCPATH
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
7 > [extensions]
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
8 > rebase =
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
9 > evolve =
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
10 > EOF
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
11
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
12 $ hg init issue5958
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
13 $ cd issue5958
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
14
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
15 $ echo hi > r0
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
16 $ hg ci -qAm 'add r0'
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
17 $ echo hi > foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
18 $ hg ci -qAm 'add foo.txt'
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
19 $ hg metaedit -r . -d '0 2'
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
20 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
21
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
22 (Make changes in unrelated files so that we don't have any merge conflicts
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
23 during the rebase, but the two touched revisions aren't identical)
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
24
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
25 $ echo hi > bar.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
26 $ hg add -q bar.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
27 $ hg amend -q
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
28 $ hg metaedit -r 1 -d '0 1' --hidden
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
29 2 new content-divergent changesets
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
30 $ hg log -r tip
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
31 changeset: 4:c17bf400a278
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
32 tag: tip
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
33 parent: 0:a24ed8ad918c
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
34 user: test
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
35 date: Wed Dec 31 23:59:59 1969 -0000
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
36 instability: content-divergent
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
37 summary: add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
38
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
39 $ echo hi > baz.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
40 $ hg add -q baz.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
41 $ hg amend -q
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
42 $ hg rebase -qr tip -d 4
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
43 $ hg log -G
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
44 @ changeset: 6:08bc7ba82799
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
45 | tag: tip
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
46 | parent: 4:c17bf400a278
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
47 | user: test
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
48 | date: Wed Dec 31 23:59:58 1969 -0000
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
49 | instability: content-divergent
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
50 | summary: add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
51 |
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
52 * changeset: 4:c17bf400a278
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
53 | parent: 0:a24ed8ad918c
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
54 | user: test
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
55 | date: Wed Dec 31 23:59:59 1969 -0000
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
56 | instability: content-divergent
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
57 | summary: add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
58 |
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
59 o changeset: 0:a24ed8ad918c
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
60 user: test
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
61 date: Thu Jan 01 00:00:00 1970 +0000
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
62 summary: add r0
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
63
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
64 $ hg obslog -a -r .
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
65 @ 08bc7ba82799 (6) add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
66 |
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
67 | * c17bf400a278 (4) add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
68 | |
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
69 x | 1d1fc409af98 (5) add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
70 | | rewritten(parent, content) as 08bc7ba82799 using rebase by test (Thu Jan 01 00:00:00 1970 +0000)
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
71 | |
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
72 x | a25dd7af6cf6 (3) add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
73 | | rewritten(content) as 1d1fc409af98 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
74 | |
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
75 x | 0065551bd38f (2) add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
76 |/ rewritten(content) as a25dd7af6cf6 using amend by test (Thu Jan 01 00:00:00 1970 +0000)
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
77 |
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
78 x cc71ffbc7c00 (1) add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
79 rewritten(date) as 0065551bd38f using metaedit by test (Thu Jan 01 00:00:00 1970 +0000)
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
80 rewritten(date) as c17bf400a278 using metaedit by test (Thu Jan 01 00:00:00 1970 +0000)
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
81
4850
6d898fa6e5c3 evolve: check that relocating makes sense in _solvedivergent() (issue5958)
Anton Shestakov <av6@dwimlabs.net>
parents: 4849
diff changeset
82 $ hg evolve --content-divergent
4849
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
83 merge:[6] add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
84 with: [4] add foo.txt
b9b6f421688a tests: demonstrate content divergence causing "relocate node on top of itself"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff changeset
85 base: [1] add foo.txt
4850
6d898fa6e5c3 evolve: check that relocating makes sense in _solvedivergent() (issue5958)
Anton Shestakov <av6@dwimlabs.net>
parents: 4849
diff changeset
86 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
6d898fa6e5c3 evolve: check that relocating makes sense in _solvedivergent() (issue5958)
Anton Shestakov <av6@dwimlabs.net>
parents: 4849
diff changeset
87 1 new orphan changesets
6d898fa6e5c3 evolve: check that relocating makes sense in _solvedivergent() (issue5958)
Anton Shestakov <av6@dwimlabs.net>
parents: 4849
diff changeset
88 working directory is now at 2372e6d39855