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

Re: Branch management. Merge tracking.

From: Nick Patavalis <npat_at_inaccessnetworks.com>
Date: 2004-12-08 18:17:18 CET

On 2004-12-08, Stefan Haller <haller@ableton.com> wrote:
> Nick Patavalis <npat@inaccessnetworks.com> wrote:
>>
>> As far as I understand, once I've merged from the trunk to the branch,
>> I can no longer hope for a way to merge from the branch back to the
>> trunk; at least not without risking conflicts from the changes merged
>> earlier from the trunk. So practically it's "one-way" merges only:
>> Either you merge from branch to trunk, or the other way arround, but
>> not both. Am I getting something fundamentally wrong?
>
> Yes, this is wrong. You can merge both ways without problems provided
> that you have a way to remember which revision ranges you have merged
> from trunk to branch; then you merge everything *except* those ranges
> back from the branch to the trunk.

Yes you 're right this will work. So provided that you don't merge
from trunk to brach very very often (e.g if you do it every week or
so), *and* that you don't *pick* specific trunk mods, then it is
manageable.

>
> At the end, you have a branch that consists of trunk plus changes on
> branch, which means that the final merge back is a single merge like
> this:
>
> cd trunk-wc
> svn merge svn://host/repo/proj/trunk/mod0_at_r27 \
> svn://host/repo/proj/branches/my-mod0 .
>
>

I see! So you 're diffing between two distinct points of two branches,
and not between two "history points" of a single branch. For some
reason I always thought that merging is only for the latter, but you
are obviously right. To say it more generally, and please correct me
if I'm wrong: You are merging into the trunk-wc the differences
between the trunk---at the last trunk-to-branch merge point---and the
head of the branch.

This may sound a bit confusing at first, but It works. The way I
managed to wrap my mind around it is: If no changes have been made in
the trunk since r27, then the merge is "mathematically" guaranteed to
have no conflicts, and the resulting WC is guaranteed to be
*identical* to the head of the branch (right?). So any conflicts, or
discrepancies, that may result from "your" merge are due to changes
made on the trunk, since the last sync-point (i.e. since r27); which
is something impossible to avoid.

Thanks for your help
/npat

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Wed Dec 8 18:19:52 2004

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.