tests/test-merge-default.t
author Pierre-Yves David <pierre-yves.david@fb.com>
Tue, 02 Feb 2016 14:49:02 +0000
changeset 28029 72072cfc7e91
parent 26716 c027641f8a83
child 28103 7d852bb47b0a
permissions -rw-r--r--
update: warn about other topological heads on bare update A concern around the user experience of Mercurial is user getting stuck on there own topological branch forever. For example, someone pulling another topological branch, missing that message in pull asking them to merge and getting stuck on there own local branch. The current way to "address" this concern was for bare 'hg update' to target the tipmost (also latest pulled) changesets and complain when the update was not linear. That way, failure to merge newly pulled changesets would result in some kind of failure. Yet the failure was quite obscure, not working in all cases (eg: commit right after pull) and the behavior was very impractical in the common case (eg: issue4673). To be able to change that behavior, we need to provide other ways to alert a user stucks on one of many topological head. We do so with an extra message after bare update: 1 other heads for branch "default" Bookmark get its own special version: 1 other divergent bookmarks for "foobar" There is significant room to improve the message itself, and we should augment it with hint about how to see theses other heads or handle the situation (see in-line comment). But having "a" message is already a significant improvement compared to the existing situation. Once we have it we can iterate on a better version of it. As having such message is an important step toward changing the default destination for update and other nicety, I would like to move forward quickly on getting such message. This was discussed during London - October 2015 Sprint.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
     1
  $ hg init
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
     2
  $ echo a > a
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
     3
  $ hg commit -A -ma
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
     4
  adding a
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
     5
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
     6
  $ echo b >> a
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
     7
  $ hg commit -mb
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
     8
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
     9
  $ echo c >> a
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    10
  $ hg commit -mc
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    11
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    12
  $ hg up 1
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    13
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    14
  $ echo d >> a
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    15
  $ hg commit -md
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    16
  created new head
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    17
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    18
  $ hg up 1
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    19
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    20
  $ echo e >> a
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    21
  $ hg commit -me
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    22
  created new head
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    23
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    24
  $ hg up 1
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    25
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    26
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    27
Should fail because not at a head:
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    28
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    29
  $ hg merge
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    30
  abort: branch 'default' has 3 heads - please merge with an explicit rev
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    31
  (run 'hg heads .' to see heads)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12255
diff changeset
    32
  [255]
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    33
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    34
  $ hg up
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    35
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
28029
72072cfc7e91 update: warn about other topological heads on bare update
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 26716
diff changeset
    36
  2 other heads for branch "default"
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    37
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    38
Should fail because > 2 heads:
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    39
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    40
  $ HGMERGE=internal:other; export HGMERGE
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    41
  $ hg merge
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    42
  abort: branch 'default' has 3 heads - please merge with an explicit rev
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    43
  (run 'hg heads .' to see heads)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12255
diff changeset
    44
  [255]
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    45
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    46
Should succeed:
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    47
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    48
  $ hg merge 2
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    49
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    50
  (branch merge, don't forget to commit)
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    51
  $ hg commit -mm1
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    52
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    53
Should succeed - 2 heads:
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    54
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    55
  $ hg merge -P
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    56
  changeset:   3:ea9ff125ff88
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    57
  parent:      1:1846eede8b68
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    58
  user:        test
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    59
  date:        Thu Jan 01 00:00:00 1970 +0000
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    60
  summary:     d
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    61
  
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    62
  $ hg merge
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    63
  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    64
  (branch merge, don't forget to commit)
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    65
  $ hg commit -mm2
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    66
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    67
Should fail because at tip:
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    68
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    69
  $ hg merge
15619
6c8573dd1b6b merge: make 'nothing to merge' aborts consistent
Kevin Bullock <kbullock@ringworld.org>
parents: 12316
diff changeset
    70
  abort: nothing to merge
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12255
diff changeset
    71
  [255]
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    72
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    73
  $ hg up 0
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    74
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
5242
9cd6578750b9 improve error message for 'hg merge' when repo already at branchtip
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 2915
diff changeset
    75
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    76
Should fail because there is only one head:
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    77
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    78
  $ hg merge
15619
6c8573dd1b6b merge: make 'nothing to merge' aborts consistent
Kevin Bullock <kbullock@ringworld.org>
parents: 12316
diff changeset
    79
  abort: nothing to merge
6c8573dd1b6b merge: make 'nothing to merge' aborts consistent
Kevin Bullock <kbullock@ringworld.org>
parents: 12316
diff changeset
    80
  (use 'hg update' instead)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12255
diff changeset
    81
  [255]
2915
013921c753bd merge with other head by default, not tip.
Vadim Gelfer <vadim.gelfer@gmail.com>
parents:
diff changeset
    82
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    83
  $ hg up 3
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    84
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    85
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    86
  $ echo f >> a
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    87
  $ hg branch foobranch
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    88
  marked working directory as branch foobranch
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 12316
diff changeset
    89
  (branches are permanent and global, did you want a bookmark?)
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    90
  $ hg commit -mf
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    91
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    92
Should fail because merge with other branch:
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    93
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    94
  $ hg merge
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    95
  abort: branch 'foobranch' has one head - please merge with an explicit rev
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    96
  (run 'hg heads' to see all heads)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12255
diff changeset
    97
  [255]
10355
a5576908b589 merge: add hints about the use of 'hg heads' to find the rev to merge
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 8834
diff changeset
    98
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
    99
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   100
Test for issue2043: ensure that 'merge -P' shows ancestors of 6 that
22389
94f77624dbb5 comments: describe ancestor consistently - avoid 'least common ancestor'
Mads Kiilerich <madski@unity3d.com>
parents: 15623
diff changeset
   101
are not ancestors of 7, regardless of where their common ancestors are.
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   102
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   103
Merge preview not affected by common ancestor:
10505
b3311e26f94f merge: fix --preview to show all nodes that will be merged (issue2043).
Greg Ward <greg-hg@gerg.ca>
parents: 10504
diff changeset
   104
12255
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   105
  $ hg up -q 7
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   106
  $ hg merge -q -P 6
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   107
  2:2d95304fed5d
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   108
  4:f25cbe84d8b3
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   109
  5:a431fabd6039
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   110
  6:e88e33f3bf62
9b3c02c36d92 tests: unify test-merge-default
Adrian Buehlmann <adrian@cadifra.com>
parents: 10658
diff changeset
   111
26716
c027641f8a83 revset: rename and test '_destmerge'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22389
diff changeset
   112
Test experimental destination revset
c027641f8a83 revset: rename and test '_destmerge'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22389
diff changeset
   113
c027641f8a83 revset: rename and test '_destmerge'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22389
diff changeset
   114
  $ hg log -r '_destmerge()'
c027641f8a83 revset: rename and test '_destmerge'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22389
diff changeset
   115
  abort: branch 'foobranch' has one head - please merge with an explicit rev
c027641f8a83 revset: rename and test '_destmerge'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22389
diff changeset
   116
  (run 'hg heads' to see all heads)
c027641f8a83 revset: rename and test '_destmerge'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22389
diff changeset
   117
  [255]
c027641f8a83 revset: rename and test '_destmerge'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22389
diff changeset
   118