views:

21

answers:

1

Hi,

I am trying to use the svn vendor branch to upgrade the third party library. (We have modified the source code)

I followed all the steps to create the vendor branch::

created the vendor branch for old version (3rd party library) created the vendor branch for latest version (3rd party library) copied the latest version to current folder using (usign svn_load_dirs.pl script)

structure of vendor repository in svn

URL/vendor/library/3.5.0 URL/vendor/library/3.7.0 URL/vendor/library/current

I have the library-3.5.0 used/modified at URL/trunk/library/customized-library

I have a problem when I try to merge the difference between URL/vendor/library/3.7.0 and URL/vendor/library/3.5.0 to URL/trunk/library/customized-library

I am at the folder where URL/trunk/library/customized-library is checked out and I use following command to do the merge

svn merge URL/vendor/library/3.5.0 URL/vendor/library/current . --accept PARAMETERS

when I use theirs-conflict for accept parameter, It ignores all of my changes to the old version and copies files from 3.7.0 when I user mine-conflict, it ignores the files in 3.7.0 when I use postpone, it throws exception "tree conflict"

Thanks Gyan

+1  A: 

Your problems exist because 3.5.0 and 3.7.0 have no common ancestry. You create both parallel to each other. What you need to do is use vendor/current as your merge source but only if you checked in current during the time when 3.5.0 was the most recent version.

When overwriting current with 3.7.0 a changeset gets created. This changeset is what you have to apply to your modified version of the library :)

Apart from that you did everything right.

Christoph Strasen