views:

327

answers:

3

Hi.

I don't have any experience with SVN and TortoiseSVN.

In some stage of development we have received request to localize application for new customer. This is big task, and we decide to make branch for localization and continue development application without localization.

Currently, localization is finished and we need merge this changes to the trunk. Application version on branch is 1.3. Application version on trunk is 1.6.

Which is best scenario for merging changes from branch to the trunk with keeping new features on the trunk.

I use TortoiseSVN with VisualSVN.

Thank for help.

+2  A: 

I can't see any other way than merging in the localization by hand through tortoiseSVN as per BtBhs doc link, run all the tests to check that everything still works, including the new features on 1.6. It will be a lot of work, but that's the danger of branching off for a long time and then having to merge to a trunk a few versions ahead.

EDIT: As far as I can see, merging the trunk changes into the localization branch and then merge the localization branch completely with the trunk would just be an extra step. It might be a good idea though, if the time and size perspective on this is that it will take several days of work for several people/pairs to do this merge so that they'd be able to check in their changes to the localization branch daily.

Stefan Thyberg
A: 

Hello, We had the same issue here and in my opinion the best option would have been to regularly merge the trunk changes into the localization branch, and when completed make the branch the new trunk. But that's too late for you now :(

I would say merge the trunk into the branch, and localize all the merged files this could take some time depending on your project. This way you are sure that in case of emergency you still have a workink trunk. And you also now that the files with the red check mark are the files that need to be localized (with tortoise). Don't commit a merged file until it's localized !

At the end make the branch the new trunk.

Sébastien Nussbaumer
+2  A: 

As BtBh said, the best way to handle this is explained in depth here.

To summarize, what you need to do is:

  1. Merge the changes you've made made in your trunk into your feature branch.
  2. Complete your localization activities in your feature branch - don't forget to localize any new features you've added in the trunk that you've just moved to your branch. At the end of this process your trunk and branch should be identical except for the localization features you've added to your branch.
  3. Once you've completed your changes in your feature branch and committed all your changes, then merge your branch changes back into your trunk.
  4. Remove the feature branch from your repository. (Remember, you can always recover it in SVN.)
Joe Barone