prepush: add more precise error messages
Part of the patch is from timeless@mozdev.org
- indicate the branch name where there are multiple heads
- give better advice when hitting a possible race, where new heads are added
between discovery and the call to branchmap(). In that case, asking the user
to merge isn't helpful, since only remote has the changes.
% Changes during an interruption - continue
@ 4: E
|
o 3: D
|
| o 2: C
| |
| o 1: B
|/
o 0: A
% - Rebasing B onto E
merging A
warning: conflicts during merge.
merging A failed!
abort: fix unresolved conflicts with hg resolve then run hg rebase --continue
% - Force a commit on C during the interruption
1 files updated, 0 files merged, 1 files removed, 0 files unresolved
@ 6: Extra
|
| o 5: B
| |
| o 4: E
| |
| o 3: D
| |
o | 2: C
| |
o | 1: B
|/
o 0: A
% - Resume the rebasing
merging A
warning: conflicts during merge.
merging A failed!
abort: fix unresolved conflicts with hg resolve then run hg rebase --continue
% - Solve the conflict and go on
warning: new changesets detected on source branch, not stripping
rebase completed
@ 7: C
|
| o 6: Extra
| |
o | 5: B
| |
o | 4: E
| |
o | 3: D
| |
| o 2: C
| |
| o 1: B
|/
o 0: A
% Changes during an interruption - abort
@ 4: E
|
o 3: D
|
| o 2: C
| |
| o 1: B
|/
o 0: A
% Rebasing B onto E
merging A
warning: conflicts during merge.
merging A failed!
abort: fix unresolved conflicts with hg resolve then run hg rebase --continue
% Force a commit on B' during the interruption
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
@ 6: Extra
|
o 5: B
|
o 4: E
|
o 3: D
|
| o 2: C
| |
| o 1: B
|/
o 0: A
% Abort the rebasing
warning: new changesets detected on target branch, not stripping
@ 6: Extra
|
o 5: B
|
o 4: E
|
o 3: D
|
| o 2: C
| |
| o 1: B
|/
o 0: A