[sldev] Re: Problems merging new LL code with SVK source version control

Dale Glass dale at daleglass.net
Thu Sep 6 10:34:40 PDT 2007


On Thursday 06 September 2007 17:44:10 Tobias Lang wrote:
> Hello,
>
> I make quite a lot of changes to the SL viewer and always struggle
> applying my changes to a new LL release. After following the
> instructions for the SVK version control
> http://wiki.secondlife.com/wiki/Source_version_control I can update to a
> new LL code very easliy, but only if I use the same branch, like 1.18.1.
> If LL releases a new viewer in another branch like 1.18.3 the "smerge"
> SVK command doesn't work anymore, telling me that no common merge base
> exists between the LL branch and my SVN repository.
>
> Is this a common problem or am I doing s.th. wrong? How to you guys
> usually update to a new version? Merging always manually?
>
> Thank you,
> Tobias

Ok, the trick is that SVK needs a continous history from where you started 
to where you are now to figure out what to merge, and LL sometimes screws 
it up. There seems to be some confusion regarding what LL works 
on, /release or /branch/Branch*, etc. Recently they first committed the 
1.18.2 changes into the 1.18.1 branch, THEN made 1.18.2 from that. So a 
smerge from 1.18.1 will work OK.

LL seems to branch inconsistently, sometimes they do it from /release, 
sometimes from /branches/Branch*. So long the branch is from the previous 
one smerge should work.

For SL it's pretty easy anyway: You need to find the first revision after 
you merged and merge from there with 'svk merge' instead of 'svk smerge'. 
Doing that will create a merge point, and after that you can use smerge 
again.

The -C argument will test a merge without actually doing it, you can use 
that to safely play with the revision arguments until you get it right.

You can find the revision by using svk log.

Some hints: 

Use the -I (uppercase I as in the first character of "information" for 
those with evil fonts) argument to smerge. That results in a merge being 
done revision by revision instead of as one big chunk. If you're 5 
revisions behind, without -I you're merging all 5 as one into the 
destination, while with -I you'll commit 5. That makes things a lot 
friendlier for external SVN users, and makes things much nicer for you if 
you need to merge the results of the merge somewhere else.

The -l (lowercase L as in "land") argument will copy log entries. -Il will 
merge revision by revision, copying the original log entries so that you 
don't have to enter your own.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part.
Url : http://lists.secondlife.com/pipermail/sldev/attachments/20070906/cc6693da/attachment.pgp


More information about the SLDev mailing list