It's all about the answers!

Ask a question

You can try to auto-merge non-conflicting parts of the file


Darius Damalakas (2632) | asked Dec 22 '10, 5:12 a.m.
Could someone explain what this message means?

"The file is in conflict and needs to be resolved. You can try to auto-merge non-conflicting parts of the file or you can edit manually then save"

To be exact, i am puzzled by what "is in conflict" actually means. I consider a file to be in conflict when automatic merge can not be done, since the same lines are modified by two users at the moment.

If the source control can merge automatically, then it should do it straight away. however, the message confuses me. Does it mean that RTC can not automatically merge?

8 answers



permanent link
Christophe Cornu (47123) | answered Dec 28 '10, 10:39 a.m.
Hi:
RTC Source Control Eclipse doesn't automatically auto-resolve your conflicts after you accept conflicting changes. It lets you decide when you want to deal with conflicts - e.g. maybe you want to suspend your outgoing changes instead.
You can select the conflict in the pending changes view and 'auto-resolve'. However, most developers like to double click on that conflict to see it in the Eclipse compare editor. This allows them to decide if the changes should be auto-resolved or if things are more complicated (because the changes are semantically incompatible for example, not just because they are on the same lines). Usually you'll feel good about the changes and can just 'auto-resolve'. In some cases you'll use the compare editor to decide which changes to keep from your version and the other version. Or just plainly resolve with mine or with other if only one version makes sense. Or... suspend your change if it no longer makes sense after that change you accepted.

HTH
Christophe Cornu
RTC Source Control Client

permanent link
Darius Damalakas (2632) | answered Dec 29 '10, 6:23 a.m.

RTC Source Control Eclipse doesn't automatically auto-resolve your conflicts after you accept conflicting changes. It lets you decide when you want to deal with conflicts - e.g. maybe you want to suspend your outgoing changes instead.

To suspend my outgoing changes and to suspend merging my code with incoming code are two separate things.

The longer you wait to merge your code with incoming changes, the more chance that the codes will drift in an uncompatible way, so merge early and often does prevent this to some extent.



You can select the conflict in the pending changes view and 'auto-resolve'. However, most developers like to double click on that conflict to see it in the Eclipse compare editor.

You can do that also after merging, that is, view the changes that were done. However, the more we postpone merging, the more likely it will be more to merge.


This allows them to decide if the changes should be auto-resolved or if things are more complicated (because the changes are semantically incompatible for example, not just because they are on the same lines).

Why not let the computer do the easy stuff, and let humans do only the hard stuff. My point is that i do not want to proof-check what computer is doing, i want to trust computer 100%. So if version control system can merge code, why do i need to double-check it's results? let it carry on, do the easy stuff, and if the computer fails to merge safely, then only then warn me about it.



Usually you'll feel good about the changes and can just 'auto-resolve'. In some cases you'll use the compare editor to decide which changes to keep from your version and the other version. Or just plainly resolve with mine or with other if only one version makes sense. Or... suspend your change if it no longer makes sense after that change you accepted.



My biggest point which i want to stress (and i might be wrong! i am also human), is that such feature, i.e. not merging automatically makes me feel that the source control system is not bullet proof.

Source control systems should be bullet proof, they should not allow loose my own source code, and do as much things as possible without human interference.

Personally, when i saw this "auto-resolve" button, my internal response was "Oh, it must be some conflict, which source control could not resolve". So then i spent five or so minutes searching where are those conflicting changes, and of course i did not find anything. Then it happened again, and then 5 times again. Then my response was "Wtf, it can not do such simple merge manually!". And this lead me thinking that this tool is not bullet-proof, and maybe it simply can not do correctly auto-merging.

git, mercurial does that automatically, they even do it much much better than subversion, and i feel very comfortable, since i NEVER have to worry about my code being lost.

Please tell me that i can trust "auto-resolve" button, and that i should simply press it whenever i see it without worrying that i will loose my valuable code.

permanent link
Geoffrey Clemm (30.1k33035) | answered Dec 29 '10, 11:53 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
I always select auto-resolve, and only bring files up in the compare
editor if auto-resolve detects a conflict that cannot be automatically
merged. It certainly would be more convenient for me if this were
automated (I often hit auto-resolve more than once, just in case I
forgot to hit it the first time). I've submitted work item 148609,
requesting that there be an "auto-auto-resolve" preference. Please feel
free to add a comment indicating your interest/support.

Just one caveat. RTC will automatically checkin the results of the
auto-resolve into any change set that you currently have open against
the merged files. I've submitted work item 148610 requesting that RTC
not checkin the results of the auto-resolve, unless the user has turned
on the "auto-checkin" preference (as above, please feel free to add a
comment to 148610, to indicate your interest/support). As a workaround,
I try to remember to complete any change sets for any files with merge
conflicts, so that the auto-resolve will be forced to create a new
change set for the results of the auto-resolve.

Cheers,
Geoff

On 12/29/2010 6:38 AM, dariusdamalakas wrote:
chrisxwrote:

RTC Source Control Eclipse doesn't automatically auto-resolve your
conflicts after you accept conflicting changes. It lets you decide
when you want to deal with conflicts - e.g. maybe you want to suspend
your outgoing changes instead.

To suspend my outgoing changes and to suspend merging my code with
incoming code are two separate things.

The longer you wait to merge your code with incoming changes, the more
chance that the codes will drift in an uncompatible way, so merge
early and often does prevent this to some extent.


chrisxwrote:

You can select the conflict in the pending changes view and
'auto-resolve'. However, most developers like to double click on that
conflict to see it in the Eclipse compare editor.

You can do that also after merging, that is, view the changes that
were done. However, the more we postpone merging, the more likely it
will be more to merge.

chrisxwrote:

This allows them to decide if the changes should be auto-resolved or
if things are more complicated (because the changes are semantically
incompatible for example, not just because they are on the same
lines).

Why not let the computer do the easy stuff, and let humans do only the
hard stuff. My point is that i do not want to proof-check what
computer is doing, i want to trust computer 100%. So if version
control system can merge code, why do i need to double-check it's
results? let it carry on, do the easy stuff, and if the computer
fails to merge safely, then only then warn me about it.


chrisxwrote:

Usually you'll feel good about the changes and can just
'auto-resolve'. In some cases you'll use the compare editor to decide
which changes to keep from your version and the other version. Or just
plainly resolve with mine or with other if only one version makes
sense. Or... suspend your change if it no longer makes sense after
that change you accepted.



My biggest point which i want to stress (and i might be wrong! i am
also human), is that such feature, i.e. not merging automatically
makes me feel that the source control system is not bullet proof.

Source control systems should be bullet proof, they should not allow
loose my own source code, and do as much things as possible without
human interference.

Personally, when i saw this "auto-resolve" button, my
internal response was "Oh, it must be some conflict, which
source control could not resolve". So then i spent five or so
minutes searching where are those conflicting changes, and of course
i did not find anything. Then it happened again, and then 5 times
again. Then my response was "Wtf, it can not do such simple
merge manually!". And this lead me thinking that this tool is
not bullet-proof, and maybe it simply can not do correctly
auto-merging.

git, mercurial does that automatically, they even do it much much
better than subversion, and i feel very comfortable, since i NEVER
have to worry about my code being lost.

Please tell me that i can trust "auto-resolve" button, and
that i should simply press it whenever i see it without worrying that
i will loose my valuable code.

permanent link
Darius Damalakas (2632) | answered Jan 04 '11, 5:08 a.m.
I always select auto-resolve, and only bring files up in the compare
editor if auto-resolve detects a conflict that cannot be automatically
merged. It certainly would be more convenient for me if this were
automated (I often hit auto-resolve more than once, just in case I
forgot to hit it the first time). I've submitted work item 148609,
requesting that there be an "auto-auto-resolve" preference. Please feel
free to add a comment indicating your interest/support.

Just one caveat. RTC will automatically checkin the results of the
auto-resolve into any change set that you currently have open against
the merged files. I've submitted work item 148610 requesting that RTC
not checkin the results of the auto-resolve, unless the user has turned
on the "auto-checkin" preference (as above, please feel free to add a
comment to 148610, to indicate your interest/support). As a workaround,
I try to remember to complete any change sets for any files with merge
conflicts, so that the auto-resolve will be forced to create a new
change set for the results of the auto-resolve.

Good to hear that i am not the only one who spotted this.




Now i have also found one more bug, or maybe feature. Depends how jazz.net managers will decide to wrap it.

Here's a screenshot:


http://picasaweb.google.com/lh/photo/TzV2Jdfyenk_TQs83GraNv1qABSDJD3Z-B775z1CkrQ?feat=directlink

Basically what the screenshot illustrates is this:
i have added a line

"import services.common.services.TopicThread;"

and the other developer has also added this same line. And when i press "Auto-merge" button, it fails with message

"This file contains one or more conflicts that cannot be merged automatically".


I would like to know whether this issue will be fixed and when.

permanent link
Christophe Cornu (47123) | answered Jan 04 '11, 8:00 a.m.
Thanks for the screenshot, Darius.

> I would like to know whether this issue will be fixed and when
We can investigate if a newer version of the Eclipse compare editor treats that kind of pseudo conflict differently. I'm also wondering if there's an extra trailing space that is confusing it on the proposed state. We will post the information to work item 148609. Right now, as you're certainly very well aware, you would use the compare editor to cherry pick the changes, you want to bring in into your own version of the file - e.g. all the non conflicting ones. When you are satisfied, "resolve as merged".

When you hit further confusing conflict situations, you can always open a work item against Rational Team Concert / Source Control, with screenshots. We always like to hear about real situations.

Christophe Cornu
RTC Source Control Client

permanent link
Darius Damalakas (2632) | answered Jan 04 '11, 8:47 a.m.
> We can investigate if a newer version of the Eclipse compare editor treats that kind of pseudo conflict differently. I'm also wondering if there's an extra trailing space that is confusing it on the proposed state. We will post the information to work item 148609.

Ok.

In my opinnion, extra trailing space should be an option which could be turned on or off. I would prefer to ignore any whitespace difference (in the end of line), although others might have their own reasons to turn this on.


>> When you hit further confusing conflict situations, you can always open a work item against Rational Team Concert / Source Control, with screenshots. We always like to hear about real situations.
Is this forum a correct place to post this info, or is there another place for that?




I would like also to know your response about auto-merge. That is, will it be possible in the future to ask to merge automatically always except on strict merge conflicts

permanent link
Geoffrey Clemm (30.1k33035) | answered Jan 04 '11, 10:08 a.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
Based on your screenshot, the two developers have made different changes
(producing the "conflict" report), but that one developer's change was a
subset of the other developer's change.

I can certainly see how one might want that to be auto-mergeable, so you
should feel free to make that request (I'd probably classify it as an
"enhancement", but that's up to you).

But I believe that the default RTC text merge tool is just inherited
from Eclipse, so that request would need to be submitted to the Eclipse
project (RTC SCM team: is that right?)

Alternatively, you can just tell RTC to use a different merge tool, if
you have one that you prefer (you specify the merge tool you want used
in the Eclipse preferences).

Cheers,
Geoff


On 1/4/2011 5:23 AM, dariusdamalakas wrote:

Now i have also found one more bug, or maybe feature. Depends how
jazz.net managers will decide to wrap it.

Here's a screenshot:


http://picasaweb.google.com/lh/photo/TzV2Jdfyenk_TQs83GraNv1qABSDJD3Z-B775z1CkrQ?feat=directlink

Basically what the screenshot illustrates is this:
i have added a line

"import services.common.services.TopicThread;"

and the other developer has also added this same line. And when i
press "Auto-merge" button, it fails with message

"This file contains one or more conflicts that cannot be merged
automatically".


I would like to know whether this issue will be fixed and when.

permanent link
Geoffrey Clemm (30.1k33035) | answered Jan 04 '11, 12:38 p.m.
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER
That enhancement request is work item 148609.
Please feel free to indicate your interest and support via a comment there.

Cheers,
Geoff

On 1/4/2011 9:23 AM, dariusdamalakas wrote:
I would like also to know your response about auto-merge. That is,
will it be possible in the future to ask to merge automatically
always except on strict merge conflicts

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.