tests/test-bookmarks-merge.t
author David Soria Parra <dsp@php.net>
Sun, 13 May 2012 11:55:42 +0200
changeset 16708 4a02cf4fbb2e
parent 16706 a270ec977ba6
child 17394 19e4861f9730
permissions -rw-r--r--
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.
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
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