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

RE: Merge two different trees vs Reintegrate a branch and Vendor Branches

From: Bob Archer <bob.archer_at_amsi.com>
Date: Wed, 17 Mar 2010 12:53:44 -0400

> I can not tell when to use Reintegrate a branch or Merge two different
> trees.
> which is different between them?

Basically a reintegrate is a two tree merge... it just figures out the revisions for you. You will usually use a --reintegrate to merge the changes made in a feature branch back into trunk. In order to use reintegrate you would have to make sure that you merge from the source folder (trunk) first. For example... you have a trunk and you want to work on a new feature... let's say Feature1. So, you create a feature1 branch from trunk.

You work on feature1 committing as changes are made. Every few days or week, you merge from trunk into branch to keep up with the changes made to trunk. Finally feature1 is done and you want to merge it back to trunk. So, you do a final merge from trunk to feature1 to make sure you have all the changes. Once that is done you will merge into trunk from branch choosing the reintegrate merge. This will take all the stuff you did in the feature1 branch and merge it into trunk. Once you are done you would deleted feature1 branch. (there is a way to continue using it, see the nightly svn book.)

The other use case for a branch is perhaps a release branch. Your trunk is ready to release so you create a branch for the new version... say ver1. Trunk continues on to eventually become release 2. Now you find there is a bug in ver1 so you want to create a fix. You fix the code in the ver1 branch and commit it. Now you want to merge that change back to trunk. So, you would do a normal merge from ver1 branch into trunk. This is "not" a reintegration because you haven't been merging all the trunk changes (which are really for rev2) into the rev1 branch. After you merge rev1 into trunk the bug fix is in trunk and the rev1 branch remains. You could later create another fix in rev1 branch and merge than into trunk... rinse and repeat.

> if I use svn command line,how to use command to process the same
> thing?

I'm not sure what you mean... what is the command line to do a reintegrate merge? If so:

To keep the branch up to date:
cd /branch/working/copy
svn merge $REPO/path/to/trunk
(do this as often as is practical)

cd trunk/working/copy
svn merge $REPO/path/to/branch --reintegrate
svn rm $REPO/path/to/branch

> about Vendor Branches
> may I merge Vendor Branches not import them to the same repository?

Yes, I think now that merge is supported from external repos you can do it. It just isn't in the book yet. Someone did say they were going to add this use case.

I strongly suggest you read the svn book and branching/merging.

Also this blog post is most helpful to understand merge properties and reintegrate:



To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2010-03-17 17:52:44 CET

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.