Issue12

Title update -m should handle errors during merge more gracefully
Priority feature Status resolved
Superseder Nosy List ThomasAH, bos, junkblocker, kupfer, movement, mpm, tonfa
Assigned To ThomasAH Topics

Created on 2005-10-20.23:50:18 by mpm, last changed 2007-10-15.19:13:31 by Omnifarious.

Files
File name Uploaded Type Edit Remove
hgmerge-err.diff tonfa, 2006-01-29.20:08:19 text/plain
update-more-verbose.patch ThomasAH, 2006-04-04.16:09:57 text/plain
Messages
msg1197 (view) Author: ThomasAH Date: 2006-05-10.17:09:43
in main now
msg1120 (view) Author: ThomasAH Date: 2006-05-02.16:46:18
Pushed update-more-verbose.patch to crew
(with small modifications to revert/backout, so they don't display the stats)

Still TODO:
don't allow commit of files with commit markers unless --force is used

I'll reopen issue122 for this and transfer nosy list.
msg1117 (view) Author: movement Date: 2006-05-02.16:03:52
tonfa suggested I add a comment here.

Often, I don't want to resolve merges immediately after a pull. Rather, I want
the files left with merge markers, so I can come back to them individually later.

Unfortunately, if I forget some of these, hg lets me commit those files with the
markers still in place, unlike (some?) other SCMs. It should be checking for
this and not letting me commit until I've resolved the merges.
msg1114 (view) Author: bos Date: 2006-05-02.14:46:01
On Tue, 2006-05-02 at 08:07 +0000, Benoit Boissinot wrote:

> It looks good for me, maybe Brian wants to comment ?

+1

	<b
msg1109 (view) Author: tonfa Date: 2006-05-02.08:07:56
On 5/2/06, Thomas Arendsen Hein <mercurial-bugs@selenic.com> wrote:
>
> Thomas Arendsen Hein <thomas@intevation.de> added the comment:
>
> *ping*
> should I apply update-more-verbose.patch?
>

It looks good for me, maybe Brian wants to comment ?

Benoit
msg1108 (view) Author: ThomasAH Date: 2006-05-02.05:32:14
*ping*
should I apply update-more-verbose.patch?
msg959 (view) Author: ThomasAH Date: 2006-04-04.16:09:57
Attached is a patch proposal for 1. and 2a.
(Tests are not adapted yet)
msg952 (view) Author: bos Date: 2006-04-04.14:26:09
On Tue, 2006-04-04 at 08:30 +0000, Thomas Arendsen Hein wrote:

> Maybe a different message should be shown instead of "branch merge, don't forget
> to commit" if there are unresolved merges?

+1

> 1. Tell the user that this is a problem which probably needs to be solved before
> committing.

+1

> 2a. Tell the user how to redo all merges (e.g. hg co -C one && hg merge two)
> and/or

+1

> 2b. Tell the user how to fix the failed merges, this needs a way to tell the
>  user which merges failed, not only how many failed. One solution for this would
> be what msg473 suggests. This would abort with "conflict detected in file
> foo/bar" or something like that.

This would be the best thing to do.  It sucks to have to redo an entire
merge because one file fails; I've had to do this a number of times with
other SCM tools.

In fact, sometimes I find myself with say 6 files to merge, I get
through the first 4, then I find that I want to redo my merge of file 2
because I've forgotten something.  If we had a way of redoing a merge of
one file, it would presumably handle this case, too, which would make me
very happy.

	<b
msg945 (view) Author: ThomasAH Date: 2006-04-04.08:30:01
The output with -v is somewhat better, e.g.:
 0 files updated, 4 files merged, 0 files removed, 1 files unresolved
 (branch merge, don't forget to commit)

Maybe a different message should be shown instead of "branch merge, don't forget
to commit" if there are unresolved merges?
1. Tell the user that this is a problem which probably needs to be solved before
committing.

2a. Tell the user how to redo all merges (e.g. hg co -C one && hg merge two)
and/or
2b. Tell the user how to fix the failed merges, this needs a way to tell the
 user which merges failed, not only how many failed. One solution for this would
be what msg473 suggests. This would abort with "conflict detected in file
foo/bar" or something like that.
msg940 (view) Author: tonfa Date: 2006-04-04.05:03:45
If you use -v you have a summary of the files merged, unresolved, etc. Should it
be more verbose by default ?

What is the status of the suggestion in the msg473 ?

regards
msg473 (view) Author: ThomasAH Date: 2006-02-13.11:58:28
msg470 in issue122 makes another suggestion:
Don't allow commit if the repo has two parents and there are merge conflict
markers in any commited file, unless -f is used.
msg452 (view) Author: ThomasAH Date: 2006-02-04.20:21:42
The returned error code is good. Further enhancements may be:
- Aborting on the first failed merge _or_ showing a summary of failed merges at
the end.
  (My first guess is that the first one is better)
- getting into a consistent state or tell the user how to get that.
msg432 (view) Author: tonfa Date: 2006-01-30.07:11:07
in tip
msg430 (view) Author: tonfa Date: 2006-01-29.20:08:19
thomas, is the attached patch what you would like ?
msg387 (view) Author: ThomasAH Date: 2006-01-17.15:58:16
When hgmerge returns with an error code, Mercurial simply ignores this fact.

What you can do is:
hg co -C `hg parents -q|head -n 1|cut -d: -f1` && hg co -m

But it would be good to know about the problem.
(there are "merging foo failed!" messages, but with the following call to
hgmerge this might not be visible on the screen anymore)
msg113 (view) Author: mpm Date: 2005-11-03.04:19:22
The biggest problem here is that the second parent gets added before any merging
happens. Thus if a merge aborts part-way through, it gets marked as "done".

So I've made it last. Now, if merge breaks, you end up with your merged files,
your .orig files, and you can simply restart the merge. Any files that were
manually merged earlier should automerge on the second attempt.
msg25 (view) Author: mpm Date: 2005-10-22.09:25:23
I just copied it out of the ToDo list. I think if $HGMERGE returns false, the
merge falls over and there's no good way to restart it.
msg23 (view) Author: Omnifarious Date: 2005-10-22.07:42:40
Could you expand a little on what you mean by this?
History
Date User Action Args
2007-10-15 19:13:31Omnifarioussetnosy: - Omnifarious
2006-05-10 17:09:43ThomasAHsetstatus: testing -> resolved
nosy: mpm, Omnifarious, bos, ThomasAH, tonfa, movement, junkblocker, kupfer
messages: + msg1197
2006-05-02 16:48:35ThomasAHunlinkissue122 superseder
2006-05-02 16:46:18ThomasAHsetstatus: chatting -> testing
nosy: mpm, Omnifarious, bos, ThomasAH, tonfa, movement, junkblocker, kupfer
messages: + msg1120
2006-05-02 16:03:53movementsetnosy: + movement
messages: + msg1117
2006-05-02 14:46:01bossetnosy: mpm, Omnifarious, bos, ThomasAH, tonfa, junkblocker, kupfer
messages: + msg1114
2006-05-02 08:07:57tonfasetnosy: mpm, Omnifarious, bos, ThomasAH, tonfa, junkblocker, kupfer
messages: + msg1109
2006-05-02 05:32:14ThomasAHsetnosy: mpm, Omnifarious, bos, ThomasAH, tonfa, junkblocker, kupfer
messages: + msg1108
2006-04-15 02:35:50junkblockersetnosy: + junkblocker
2006-04-04 16:09:58ThomasAHsetfiles: + update-more-verbose.patch
nosy: mpm, Omnifarious, bos, ThomasAH, tonfa, kupfer
messages: + msg959
2006-04-04 14:26:09bossetnosy: mpm, Omnifarious, bos, ThomasAH, tonfa, kupfer
messages: + msg952
2006-04-04 08:33:47ThomasAHsetnosy: mpm, Omnifarious, bos, ThomasAH, tonfa, kupfer
assignedto: ThomasAH
2006-04-04 08:30:02ThomasAHsetnosy: mpm, Omnifarious, bos, ThomasAH, tonfa, kupfer
messages: + msg945
2006-04-04 05:03:46tonfasetnosy: mpm, Omnifarious, bos, ThomasAH, tonfa, kupfer
messages: + msg940
2006-03-29 22:28:00kupfersetnosy: + kupfer
2006-02-13 11:58:30ThomasAHsetnosy: + bos
messages: + msg473
2006-02-13 11:57:49ThomasAHlinkissue122 superseder
2006-02-04 20:21:43ThomasAHsetpriority: bug -> feature
status: testing -> chatting
messages: + msg452
nosy: mpm, Omnifarious, ThomasAH, tonfa
2006-01-30 07:11:08tonfasetstatus: chatting -> testing
nosy: mpm, Omnifarious, ThomasAH, tonfa
messages: + msg432
2006-01-29 20:08:29tonfasetfiles: + hgmerge-err.diff
nosy: + tonfa
messages: + msg430
2006-01-17 15:58:19ThomasAHsetstatus: testing -> chatting
nosy: + ThomasAH, Omnifarious
messages: + msg387
2005-11-03 04:20:02mpmsetstatus: done-cbb -> testing
2005-11-03 04:19:23mpmsetstatus: chatting -> done-cbb
nosy: + mpm
messages: + msg113
2005-10-22 09:25:23mpmsetmessages: + msg25
2005-10-22 07:42:40Omnifarioussetstatus: unread -> chatting
messages: + msg23
2005-10-20 23:50:18mpmcreate