[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Monotone-devel] non-content conflict messages

From: Derek Scherger
Subject: [Monotone-devel] non-content conflict messages
Date: Sun, 23 Sep 2007 21:10:32 -0600
User-agent: Thunderbird (X11/20070805)

I've been playing around a bit with the rather cryptic messages that
monotone generates on so called non-content conflicts and hopefully have
improved things a bit.

Here are sample messages from before/after the changes I have pending
for each type of non-content conflict. Please let me know if you think
these are better (or worse) than the existing messages (or if you care
at all I guess).

[OLD] mtn: warning: name conflict on node 2: [parent 1, self right] vs.
[parent 1, self left]
[NEW] mtn: warning: divergent name conflict: one node (2) wants two
names ('right' and 'left')

[OLD] mtn: warning: rename target conflict: nodes 6, 5, both want parent
3, name bar
[NEW] mtn: warning: convergent name conflict: two nodes (5 and 6) want
one name ('bar')

Nathaniel and I talked about calling this a "name collision conflict" as
well but later Dan and I seemed to prefer the convergent/divergent

[OLD] mtn: warning: directory loop conflict: node 9, wanted parent 8,
name foo
[NEW] mtn: warning: directory loop conflict: between 'foo' (node 9) and
'bar' (node 8)

[OLD] mtn: warning: orphaned node conflict on node 15, dead parent 13,
name bar
[NEW] mtn: warning: orphaned node conflict: parent of 'foo/bar' was
removed (node 15 parent 13)

[OLD] mtn: warning: illegal name conflict: node 16, wanted parent 13,
name _MTN
[NEW] mtn: warning: illegal name conflict: between 'foo/_MTN' (node 16)
and '' (node 13)

[OLD] <nothing>
[NEW] mtn: warning: missing root conflict: root directory has been removed

In this case, there is *no* message indicating what the problem is, it
just follows with the standard:

mtn: warning: resolve non-content conflicts and then try again.
mtn: error: merge failed due to unresolved conflicts

and quits.

[OLD] mtn: warning: attribute conflict on node 19, key test-attr: [1,
right-value] vs. [1, left-value]
[NEW] mtn: warning: attribute conflict: attribute 'test-attr' on 'foo'
(node 19) wants two values ('right-value' and 'left-value')

The approach I'm using to generate these messages is to use the two
names from the rosters that are being merged rather than the merged
results which may or may not be complete because of the problems they
are trying to describe. I'm not entirely sure this approach is sane
though and confirmation one way or the other would be good. I'm open to
any wording changes that people may find more helpful.

The other thing we should do is add a more detailed section on conflicts
to the manual that lists all of these with some hints on how they occur
and what to do about them. I'll probably make a first pass at that as I
clean this stuff up.

Also, I'm somewhat tempted to distinguish attribute conflicts from the
other non-content conflict types which would then be purely tree layout
or structural conflicts. The thought being that perhaps the UI to deal
with attribute conflicts would be somewhat simpler than that required
for structural conflicts and might actually get implemented! ;)

Finally, the relatively new show_conflicts command seems a bit odd to
me. It doesn't really show any of the details of any conflicts, just
that there are some and what type they might be. Would it be better if
this command issued more detailed warnings in the same way that merge
commands do above or is just listing types and counts actually helpful
to anyone? We could easily list the same messages as above.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]