[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Monotone-devel] Updated Issue 65 - When the left and right descendants
From: |
code |
Subject: |
[Monotone-devel] Updated Issue 65 - When the left and right descendants contain the same change, merge into ancestor (monotone) |
Date: |
Sun, 24 Jun 2012 15:14:33 +0200 |
Hello,
The following issue has been updated:
65 - When the left and right descendants contain the same change, merge into
ancestor
Project: monotone
Status: Invalid
Reported by: Unknown User
URL: https://code.monotone.ca/p/monotone/issues/65/
Labels:
Type:Feature Request
Component:Merge Algorithm
Priority:Medium
Comments (last first):
# By Stephen Leake, Jun 24, 2012:
Status: Invalid
# By Unknown User, Jul 1, 2007:
OK. Bottom line: Fix meld. Understood. I wasn't sure whose scope this change
was in. Thanks for making it clear.
# By Unknown User, Jul 1, 2007:
Not sure how we would fix this.
The way (file content) merging works is, we attempt to do our textual merge,
and if the whole files merge cleanly, then great. However, even if most of the
file merges cleanly (including clean merges resulting from identical edits on
both sides), even one conflicting hunk will cause this stage to fail.
If that stage fails, then we call the user's preferred merge tool, and just
give it the left/right/ancestor files, and it gets to do the whole merge again
from scratch, using whatever algorithms, heuristics, user interaction,
whatever, that it is programmed with. It sounds like meld's are sucky when it
comes to automatically resolving easy hunks so you can find the hard hunks that
need your attention. There isn't any way for us to reach into meld's innards
and tell it to automatically resolve certain hunks for you.
The only way we could do that would be by somehow programmatically generating
some made-up "ancestor" file, in such a way that typical 3-way line-by-line
merge tools that happened to use the same diff algorithm as monotone would
magically find fewer conflicts. This is obviously complex, error prone, and it
would workaround the limitations of dumb merge tools at the cost of making it
impossible to create reliable smart merge tools (that really do just want to be
told the facts on the ground, and then do whatever clever thing they know how
to do).
Maybe it would be easier to fix meld so it could effectively "do the mindless
clicking for you", automatically? I'm pretty sure both xxdiff and emacs'
ediff-mode get this right, for instance.
# By Unknown User, Jul 1, 2007:
added attachment meld-screenshot.png
Attachments:
- meld-screenshot.png - 136.33 kB
https://code.monotone.ca/p/monotone/issues/view/attachment/6/meld-screenshot.png
# By Unknown User, Jul 1, 2007:
(This entry was imported from the savannah tracker, original location:
https://savannah.nongnu.org/bugs/index.php?20309)
Perhaps this is an artifact of my using meld for all my manual merging, however:
Whenever monotone presents me with 3 versions of a file I need to merge
manually, one scenario occurs with great frequency, and its resolution requires
absolutely no decision making on my part. This is the scenario:
The left descendant and the right descendant both have a change which has to go
into the ancestor. However, the 2 versions of the change are identical in
content.
Thus, I mindlessly click through 10s of such hunks. I cannot envision a
scenario where you wouldn't want to merge something into the ancestor that both
descendants have identically. After all, if, in the course of working on one of
the descendants it is decided that the hunk is unnecessary, it will be removed,
in which case the left and right descendants will no longer be "symmetrically
different" from the ancestor.
My suggestion is that, before monotone offers the 3 versions of the file up for
merging, all such "symmetrical differences" be automatically merged into the
ancestor.
I was saying earlier that this may be an artifact of my using meld, because
only in meld do I have to merge left and right descendant into the ancestor
(this is a warning issued by monotone before running meld). Nonetheless, if the
changes introduced in both the left and right descendant are identical to one
another, IMO they can be merged before asking the user to decide on the rest of
the changes.
monotone version:
-----------------
monotone 0.35 (base revision: f92dd754bf5c1e6eddc9c462b8d68691cfeb7f8b)
Running on : Linux 2.6.21.5 #4 SMP Sun Jun 24 13:28:49 EEST 2007 i686
C++ compiler : GNU C++ version 4.1.1 (Gentoo 4.1.1-r3)
C++ standard library: GNU libstdc++ version 20060524
Boost version : 1_33_1
Changes since base revision:
format_version "1"
new_manifest [f95da638a0aa17f7c5979d17a059faf6a46e9670]
old_revision [f92dd754bf5c1e6eddc9c462b8d68691cfeb7f8b]
Generated from data cached in the distribution;
further changes may have been made.
--
Issue: https://code.monotone.ca/p/monotone/issues/65/
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Monotone-devel] Updated Issue 65 - When the left and right descendants contain the same change, merge into ancestor (monotone),
code <=