[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Re: Re: Merge problem SVN 1,8

From: Ben Fritz <fritzophrenic_at_gmail.com>
Date: Thu, 10 Jul 2014 10:13:28 -0500

On Thu, Jul 10, 2014 at 6:21 AM, Markus Humm
<markus.humm_at_de.ebmpapst.com> wrote:
> What _exactly_ is the difference between a conflict during reintegration and a conflict during update?
>

From a diff tool point of view: absolutely nothing. In both cases you
have 3 versions of interest: the common ancestor (either the branch
point for reintegration, or BASE of your working copy for update); the
version you're merging in (revision you're merging from branch, a.k.a.
"theirs" for merges; or HEAD for an update); and the version you
currently have (file as it exists in merge destination, or file as it
exists in your working copy for Update).

The main difference is that if you mess up the merge on an update, you
can't get your original file back. If you're merging rather than
updating, you can get the original back with a simple revert.

> And in which scenarios is content from the base file during a reintegration necessary? (means which kinds of edits do lead to this requirements?)

The base file is useful for ALL kinds of edits.

The base file is useful for changes that DON'T conflict, because it
makes it trivial to see what to do in most cases. If only one version
changed a given line, then *usually* the correct choice for that line
is to take the line from the version that changed it. With the base
file, you can see that only one file actually changed that line.
Without the base file, you only know that the two files differ at that
line. You have no idea which version is the most recent for that line.
Without the base version in this case, you'd need to consult history
to figure out which version changed the line in order to figure out
which to include.

The base file is useful for changes that DO conflict, because it lets
you see exactly WHAT changed for that line in each file. If version1
changed a for loop to use "index" instead of "i", and version2 changed
the same for loop to limit to "i < LEN" rather than "i <= LEN", then
you need the changes from both versions. It is easiest to include both
changes if you know WHAT changed in each. You cannot see that without
the base version. Again, all you know without the base version, is
that the two versions differ. Without the base version in this case,
you'd be likely to change the loop to "for (index = 0; index <= LEN;
index+=1)" rather than "for (index = 0; index < LEN; index+=1)" to
incorporate both changes.

------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3084887

To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2014-07-10 17:13:58 CEST

This is an archived mail posted to the TortoiseSVN Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.