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

Re: Documenting the merge process for TortoiseSVN

From: Mark Phippard <markphip_at_gmail.com>
Date: Mon, 10 Mar 2008 11:18:26 -0400

On Sat, Mar 8, 2008 at 7:20 AM, Simon Large
<simon.tortoisesvn_at_googlemail.com> wrote:

> I am developing a new feature, so I create a branch from trunk and
> start hacking away. To avoid potential conflicts I want to keep it
> synced up to trunk and the easiest way to do that now is to merge from
> the trunk URL into my branch WC, merging all revisions from branch
> creation to HEAD. Merge tracking will ensure that only revisions not
> yet merged are included. Reintegrate is not appropriate in this
> situation. (But what happens if I specify reintegrate anyway?)

Try it. I believe reintegrate would catch this in one of its checks
and not do anything.

> After much hacking my branch is done and I want to merge back to
> trunk. For this task I use the reintegrate merge. What is not clear is
> how this differs from merging the diff between branch tip and trunk
> tip, which is the method previously used. According to the svnbook
> nightly that is effectively what happens, so why a new command?

It is mainly ease of use. Reintegrate will figure out the right
revision arguments and it also does some checks to be sure the merge
is safe to do. To be clear, it is still fine to do the 2-URL merge.
You just bypass the checks that reintegrate would do and of course it
is possible you can make a mistake in your arguments.

> Also, what happens in the reintegrate case if the branch is not fully
> in sync. Does it fail or does it silently undo the most recent trunk
> changes that were not synced back to the branch?

It depends what you mean by fully-sycnhed. It does not have to be
synched to the HEAD revision, but one of the checks reintegrate will
do is to verify that there have not been any partial tree merges
performed in the branch, or any cherry pick merges.

> In order for all this to work everyone working on the branch *must* be
> using a 1.5 client in order to record the mergeinfo. In order for this
> to work _efficiently_ we must also be using a 1.5 server. A pre-1.5
> will work, but possibly very slowly. And what about a 1.5 repository?

It would be OK if some clients were not using 1.5 when working on the
branch as long as they are not doing merges to the branch. You would
need a client, server AND repository at 1.5 to do a reintegrate merge
or any merge that uses the merge tracking feature.

> Merge 2 different URLs does what it always did and does not take
> account of merge tracking information?

Yes and no. I think the underlying algorithm is the same in terms of
figuring out what to merge, but in 1.5 a 2-URL merge will still record
merge information. This is important and is one of the things that
made the reintegrate merge option possible,

-- 
Thanks
Mark Phippard
http://markphip.blogspot.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_subversion.tigris.org
For additional commands, e-mail: users-help_at_subversion.tigris.org
Received on 2008-03-10 16:18:49 CET

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

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