annotate tests/test-bookmarks-merge.t @ 16708:4a02cf4fbb2e

merge: respect bookmarks during merge Bookmarks will behave more like named branches when merge tries to pick a revision to merge. Bookmarks now to respect the current bookmarks. Bookmarks will not accidentally merged with unnamed heads or other bookmarks. However merge can pick heads with diverging bookmarks and pick those automatically. We end up with two cases for picking a revision to merge: (1) In case of an current bookmark, merge can pick a branch head that has a diverged bookmark (2) In case of no current bookmark, merge can pick a branch head that does not have a bookmark.
author David Soria Parra <dsp@php.net>
date Sun, 13 May 2012 11:55:42 +0200
parents a270ec977ba6
children 19e4861f9730
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16706
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
1 # init
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
2
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
3 $ hg init
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
4 $ echo a > a
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
5 $ hg add a
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
6 $ hg commit -m'a'
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
7 $ echo b > b
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
8 $ hg add b
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
9 $ hg commit -m'b'
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
10 $ hg up -C 0
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
11 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
12 $ echo c > c
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
13 $ hg add c
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
14 $ hg commit -m'c'
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
15 created new head
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
16
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
17 # test merging of diverged bookmarks
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
18 $ hg bookmark -r 1 "c@diverge"
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
19 $ hg bookmark -r 1 b
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
20 $ hg bookmark c
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
21 $ hg bookmarks
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
22 b 1:d2ae7f538514
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
23 * c 2:d36c0562f908
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
24 c@diverge 1:d2ae7f538514
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
25 $ hg merge "c@diverge"
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
26 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
27 (branch merge, don't forget to commit)
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
28 $ hg commit -m'merge'
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
29 $ hg bookmarks
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
30 b 1:d2ae7f538514
a270ec977ba6 bookmarks: delete divergent bookmarks on merge
David Soria Parra <dsp@php.net>
parents:
diff changeset
31 * c 3:b8f96cf4688b
16708
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
32
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
33 $ hg up -C 3
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
34 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
35 $ echo d > d
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
36 $ hg add d
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
37 $ hg commit -m'd'
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
38
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
39 $ hg up -C 3
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
40 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
41 $ echo e > e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
42 $ hg add e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
43 $ hg commit -m'e'
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
44 created new head
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
45 $ hg up -C 5
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
46 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
47 $ hg bookmark e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
48 $ hg bookmarks
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
49 b 1:d2ae7f538514
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
50 c 3:b8f96cf4688b
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
51 * e 5:26bee9c5bcf3
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
52
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
53 # the picked side is bookmarked
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
54
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
55 $ hg up -C 4
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
56 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
57 $ hg merge
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
58 abort: heads are bookmarked - please merge with an explicit rev
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
59 (run 'hg heads' to see all heads)
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
60 [255]
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
61
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
62 # our revision is bookmarked
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
63
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
64 $ hg up -C e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
65 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
66 $ hg merge
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
67 abort: no matching bookmark to merge - please merge with an explicit rev or bookmark
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
68 (run 'hg heads' to see all heads)
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
69 [255]
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
70
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
71 # merge bookmark heads
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
72
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
73 $ hg up -C 4
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
74 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
75 $ echo f > f
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
76 $ hg commit -Am "f"
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
77 adding f
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
78 $ hg up -C e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
79 1 files updated, 0 files merged, 2 files removed, 0 files unresolved
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
80 $ hg bookmarks -r 4 "e@diverged"
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
81 $ hg bookmarks
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
82 b 1:d2ae7f538514
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
83 c 3:b8f96cf4688b
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
84 * e 5:26bee9c5bcf3
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
85 e@diverged 4:a0546fcfe0fb
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
86 $ hg merge
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
87 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
88 (branch merge, don't forget to commit)
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
89 $ hg commit -m'merge'
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
90 $ hg bookmarks
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
91 b 1:d2ae7f538514
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
92 c 3:b8f96cf4688b
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
93 * e 7:ca784329f0ba