tests/test-bookmarks-merge.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Tue, 23 Dec 2014 15:30:38 -0800
changeset 23702 c48924787eaa
parent 21503 10f15e34d86c
child 43114 8197b395710e
permissions -rw-r--r--
filectx.parents: enforce changeid of parent to be in own changectx ancestors Because of the way filenodes are computed, you can have multiple changesets "introducing" the same file revision. For example, in the changeset graph below, changeset 2 and 3 both change a file -to- and -from- the same content. o 3: content = new | | o 2: content = new |/ o 1: content = old In such cases, the file revision is create once, when 2 is added, and just reused for 3. So the file change in '3' (from "old" to "new)" has no linkrev pointing to it). We'll call this situation "linkrev-shadowing". As the linkrev is used for optimization purposes when walking a file history, the linkrev-shadowing results in an unexpected jump to another branch during such a walk.. This leads to multiple bugs with log, annotate and rename detection. One element to fix such bugs is to ensure that walking the file history sticks on the same topology as the changeset's history. For this purpose, we extend the logic in 'basefilectx.parents' so that it always defines the proper changeset to associate the parent file revision with. This "proper" changeset has to be an ancestor of the changeset associated with the child file revision. This logic is performed in the '_adjustlinkrev' function. This function is given the starting changeset and all the information regarding the parent file revision. If the linkrev for the file revision is an ancestor of the starting changeset, the linkrev is valid and will be used. If it is not, we detected a topological jump caused by linkrev shadowing, we are going to walk the ancestors of the starting changeset until we find one setting the file to the revision we are trying to create. The performance impact appears acceptable: - We are walking the changelog once for each filelog traversal (as there should be no overlap between searches), - changelog traversal itself is fairly cheap, compared to what is likely going to be perform on the result on the filelog traversal, - We only touch the manifest for ancestors touching the file, And such changesets are likely to be the one introducing the file. (except in pathological cases involving merge), - We use manifest diff instead of full manifest unpacking to check manifest content, so it does not involve applying multiple diffs in most case. - linkrev shadowing is not the common case. Tests for fixed issues in log, annotate and rename detection have been added. But this changeset does not solve all problems. It fixes -ancestry- computation, but if the linkrev-shadowed changesets is the starting one, we'll still get things wrong. We'll have to fix the bootstrapping of such operations in a later changeset. Also, the usage of `hg log FILE` without --follow still has issues with linkrev pointing to hidden changesets, because it relies on the `filelog` revset which implement its own traversal logic that is still to be fixed. Thanks goes to: - Matt Mackall: for nudging me in the right direction - Julien Cristau and RĂ©mi Cardona: for keep telling me linkrev bug were an evolution show stopper for 3 years. - Durham Goode: for finding a new linkrev issue every few weeks - Mads Kiilerich: for that last rename bug who raise this topic over my anoyance limit.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
21404
ca275f7ec576 update: when deactivating a bookmark, print a message
Siddharth Agarwal <sid0@fb.com>
parents: 18122
diff changeset
    35
  (leaving bookmark c)
16708
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    36
  $ echo d > d
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    37
  $ hg add d
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    38
  $ hg commit -m'd'
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    39
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    40
  $ hg up -C 3
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    41
  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
    42
  $ echo e > e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    43
  $ hg add e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    44
  $ hg commit -m'e'
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    45
  created new head
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    46
  $ hg up -C 5
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    47
  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
    48
  $ hg bookmark e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    49
  $ hg bookmarks
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    50
     b                         1:d2ae7f538514
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    51
     c                         3:b8f96cf4688b
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    52
   * e                         5:26bee9c5bcf3
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    53
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    54
# the picked side is bookmarked
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    55
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    56
  $ hg up -C 4
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    57
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
21404
ca275f7ec576 update: when deactivating a bookmark, print a message
Siddharth Agarwal <sid0@fb.com>
parents: 18122
diff changeset
    58
  (leaving bookmark e)
16708
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    59
  $ hg merge
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    60
  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
    61
  (run 'hg heads' to see all heads)
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    62
  [255]
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
# our revision is bookmarked
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    65
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    66
  $ hg up -C e
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    67
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
21503
10f15e34d86c update: show message when a bookmark is activated by update
Stephen Lee <sphen.lee@gmail.com>
parents: 21404
diff changeset
    68
  (activating bookmark e)
16708
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    69
  $ hg merge
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    70
  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
    71
  (run 'hg heads' to see all heads)
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    72
  [255]
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    73
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    74
# merge bookmark heads
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    75
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    76
  $ hg up -C 4
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    77
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
21404
ca275f7ec576 update: when deactivating a bookmark, print a message
Siddharth Agarwal <sid0@fb.com>
parents: 18122
diff changeset
    78
  (leaving bookmark e)
16708
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    79
  $ echo f > f
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    80
  $ hg commit -Am "f"
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
    81
  adding f
18122
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    82
  $ hg bookmarks -r 4 "e@diverged"
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    83
  $ hg up -q -C "e@diverged"
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    84
  $ hg merge
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    85
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    86
  (branch merge, don't forget to commit)
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    87
  $ hg parents
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    88
  changeset:   4:a0546fcfe0fb
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    89
  bookmark:    e@diverged
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    90
  user:        test
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    91
  date:        Thu Jan 01 00:00:00 1970 +0000
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    92
  summary:     d
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    93
  
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    94
  changeset:   5:26bee9c5bcf3
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    95
  bookmark:    e
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    96
  parent:      3:b8f96cf4688b
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    97
  user:        test
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    98
  date:        Thu Jan 01 00:00:00 1970 +0000
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
    99
  summary:     e
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
   100
  
16708
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   101
  $ hg up -C e
18122
730b769fb634 bookmarks: fix head selection for merge with two bookmarked heads
Mads Kiilerich <mads@kiilerich.com>
parents: 17394
diff changeset
   102
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
21503
10f15e34d86c update: show message when a bookmark is activated by update
Stephen Lee <sphen.lee@gmail.com>
parents: 21404
diff changeset
   103
  (activating bookmark e)
16708
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   104
  $ hg bookmarks
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   105
     b                         1:d2ae7f538514
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   106
     c                         3:b8f96cf4688b
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   107
   * e                         5:26bee9c5bcf3
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   108
     e@diverged                4:a0546fcfe0fb
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   109
  $ hg merge
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   110
  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
   111
  (branch merge, don't forget to commit)
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   112
  $ hg commit -m'merge'
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   113
  $ hg bookmarks
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   114
     b                         1:d2ae7f538514
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   115
     c                         3:b8f96cf4688b
4a02cf4fbb2e merge: respect bookmarks during merge
David Soria Parra <dsp@php.net>
parents: 16706
diff changeset
   116
   * e                         7:ca784329f0ba
17394
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   117
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   118
# test warning when all heads are inactive bookmarks
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   119
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   120
  $ hg up -C 6
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   121
  1 files updated, 0 files merged, 1 files removed, 0 files unresolved
21404
ca275f7ec576 update: when deactivating a bookmark, print a message
Siddharth Agarwal <sid0@fb.com>
parents: 18122
diff changeset
   122
  (leaving bookmark e)
17394
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   123
  $ echo g > g
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   124
  $ hg commit -Am 'g'
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   125
  adding g
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   126
  $ hg bookmark -i g
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   127
  $ hg bookmarks
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   128
     b                         1:d2ae7f538514
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   129
     c                         3:b8f96cf4688b
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   130
     e                         7:ca784329f0ba
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   131
     g                         8:04dd21731d95
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   132
  $ hg heads
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   133
  changeset:   8:04dd21731d95
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   134
  bookmark:    g
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   135
  tag:         tip
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   136
  parent:      6:be381d1126a0
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   137
  user:        test
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   138
  date:        Thu Jan 01 00:00:00 1970 +0000
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   139
  summary:     g
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   140
  
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   141
  changeset:   7:ca784329f0ba
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   142
  bookmark:    e
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   143
  parent:      5:26bee9c5bcf3
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   144
  parent:      4:a0546fcfe0fb
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   145
  user:        test
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   146
  date:        Thu Jan 01 00:00:00 1970 +0000
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   147
  summary:     merge
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   148
  
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   149
  $ hg merge
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   150
  abort: heads are bookmarked - please merge with an explicit rev
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   151
  (run 'hg heads' to see all heads)
19e4861f9730 tests: merging bookmarked heads
John Li <jli@circularly.org>
parents: 16708
diff changeset
   152
  [255]