tags:

views:

365

answers:

1

We have a large vendor branch (1200 odd files) that has recently undergone some non-trivial changes, which I'd like to integrate back into the trunk. It updates fairly frequently and we'll need to update equally frequently, so doing it by hand is going to involve far too much wasted time.

This is what svn_load_dirs.pl was made for, only I've no perl interpreter and going through the the layers of bureaucracy to get one installed would, based on past experience, take longer and involve more pain than doing the merge by hand each time.

We do have a python interpreter, and svn_load would do the job nicely. Only rather than using the SVN CLI it uses pysvn directly, which isn't installed. See above: do not pass go, do not collect £200.

I realise it's unlikely, but anyone know of any other alternatives?

+2  A: 

You can import the new version to a different directory and then do a 3-URL-merge with --ignore-ancestry.

explained in more detail:

your old version of your vendor branch resides in

/vendor_0.1.1

you import the new version to:

/vendor_0.1.2

you can then merge them to your working copy which is pointing to your working version:

svn merge --ignore-ancestry <URL>/vendor_0.1.1 <URL>/vendor_0.1.2 <PATH_TO_WC>

By doing this, you will compare both versions and apply the difference to your working copy.

Be aware:

As you always import the full version of your vendor branch, Your repository will grow faster

Peter Parker
Do you mean ... <URL>/vendor_0.1.1 <URL>/vender 0.1.2 ... or ... <URL>/vendor_0.1.2 <URL>/vender 0.1.1 ...?I'm about to dry run both anyway. Thank you! :)
MHarris
I corrected it: it is ... <URL>/Vendor 0.1.1 <URL>/vendor_0.1.2
Peter Parker