[MERGE] Enhance conflicts when OTHER deletes a needed directory

Martin Pool mbp at canonical.com
Wed Sep 6 06:33:07 BST 2006

On  6 Sep 2006, Aaron Bentley <aaron.bentley at utoronto.ca> wrote:
> >   Can't delete $foo because ...
> I would be happiest with the last, because this conflict resolver is
> used for revert as well as merge, and the other messages are specific to
> merge.  This conflict, in particular, can happen when reverting:

OK, good point.  So the situation isn't symmetrical in that to the user
there's a clear distinction between $this and $other, and they expect
the message to be written that way.  But the message should be
"reusable" because of the ways in which general merge is used.

> This conflict will also happen when there are unversioned children.  In
> fact, these are separate steps:
> - if the directory is not empty, it will not be deleted
> - if some of its contents are versioned, it will not be unversioned.
> So if it has only unversioned contents, it will not be deleted, but it
> will be unversioned.


> Perhaps that's taking your suggestion too literally.  A more practical,
> but less nice, option would be:
>  * What the desired action was
>  * Why it couldn't be performed
>  * What Bazaar did about it
>  * What the user can do about it now.
> There are some tradeoffs here, because that's a lot of data per
> conflict, and it could be overwhelming.  Only the last item looks like
> it could be optional, though.

That looks reasonable, and I think it can be made fairly nice.  Think of
them like stepping stones with easy mental steps
  I asked bzr to merge from there
  .. and that was going to delete this directory
  .. but it's not empty
  .. so now it's conflicted but still versioned
  .. so what am I going to do?

The conflict perhaps doesn't need to give the first one because the user
just asked for it.  So "delete $dir" isn't so much a desired (by the
user) action, as the first consequence of what they asked for.

As you say this can be quite long, so I think we could have an expert
mode (bzr conflicts --short?) where it just gives a terse description,
something like "DeletedParent/ContainsUnknowns/Unversioned", or maybe
even shorter.


More information about the bazaar mailing list