annotate tests/test-merge5.t @ 28029:72072cfc7e91

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.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Tue, 02 Feb 2016 14:49:02 +0000
parents fe80fdf68ba7
children 6b1fc09c699a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
1 $ hg init
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
2 $ echo This is file a1 > a
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
3 $ echo This is file b1 > b
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
4 $ hg add a b
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
5 $ hg commit -m "commit #0"
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
6 $ echo This is file b22 > b
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
7 $ hg commit -m "comment #1"
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
8 $ hg update 0
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
9 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
10 $ rm b
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
11 $ hg commit -A -m "comment #2"
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
12 removing b
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
13 created new head
12154
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
14 $ hg update 1
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
15 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
16 $ hg update
19798
76df01e56e7f update: improve error message for clean non-linear update
Siddharth Agarwal <sid0@fb.com>
parents: 17849
diff changeset
17 abort: not a linear update
76df01e56e7f update: improve error message for clean non-linear update
Siddharth Agarwal <sid0@fb.com>
parents: 17849
diff changeset
18 (merge or update --check to force update)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12155
diff changeset
19 [255]
17849
6da47b655d97 update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents: 14485
diff changeset
20 $ rm b
6da47b655d97 update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents: 14485
diff changeset
21 $ hg update -c
19801
41abe2e3e3b7 update: standardize error message for dirty update --check
Siddharth Agarwal <sid0@fb.com>
parents: 19799
diff changeset
22 abort: uncommitted changes
17849
6da47b655d97 update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents: 14485
diff changeset
23 [255]
6da47b655d97 update: check for missing files with --check (issue3595)
Matt Mackall <mpm@selenic.com>
parents: 14485
diff changeset
24 $ hg revert b
12154
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
25 $ hg update -c
c85e07a2d783 test-merge5: ensure updating to tip across branches is tested
Brodie Rao <brodie@bitheap.org>
parents: 11978
diff changeset
26 0 files updated, 0 files merged, 1 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: 23026
diff changeset
27 1 other heads for branch "default"
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
28 $ mv a c
415
c2b9502a4e96 [PATCH] Don't prompt user for keep-vs-delete when the merge is about to be aborted
mpm@selenic.com
parents:
diff changeset
29
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
30 Should abort:
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
31
23026
fe80fdf68ba7 test-merge5: remove obsolete '-y' and its motivating comment
Martin von Zweigbergk <martinvonz@gmail.com>
parents: 19801
diff changeset
32 $ hg update 1
19799
ab3e42225dbc update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com>
parents: 19798
diff changeset
33 abort: uncommitted changes
ab3e42225dbc update: add error message for dirty non-linear update with no rev
Siddharth Agarwal <sid0@fb.com>
parents: 19798
diff changeset
34 (commit or update --clean to discard changes)
12316
4134686b83e1 tests: add exit codes to unified tests
Matt Mackall <mpm@selenic.com>
parents: 12155
diff changeset
35 [255]
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
36 $ mv c a
12155
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
37
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
38 Should succeed:
94ad12aa0530 test-merge5: removed unnecessary parts of test
Martin Geisler <mg@lazybytes.net>
parents: 12154
diff changeset
39
23026
fe80fdf68ba7 test-merge5: remove obsolete '-y' and its motivating comment
Martin von Zweigbergk <martinvonz@gmail.com>
parents: 19801
diff changeset
40 $ hg update 1
11978
ef4a1ffbf519 tests: unify test-merge5
Pradeepkumar Gayam <in3xes@gmail.com>
parents: 6350
diff changeset
41 1 files updated, 0 files merged, 0 files removed, 0 files unresolved