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

Re: merge "Skipped" many subfolders

From: Ryan Schmidt <subversion-2007a_at_ryandesign.com>
Date: 2007-02-02 09:25:33 CET

On Feb 1, 2007, at 09:13, Jeff Smith wrote:

> So between your words, the book, and the problem... 'merge' as I used
> it is not good for merging changes from the vendor into my working
> copy (or merging any other branches into the trunk, for that matter).
> Of course I'm missing something because that makes no sense.

"svn merge" is fine for merging changes in a vendor project into your
project; I use it successfully for that purpose. The fact that it's
not working for you probably just means you're not executing the
correct "svn merge" command.

> I'm trying to merge changes which are committed in vendor/FreeRTOS
> into trunk/FreeRTOS. The part not working the way I expect is when
> the vendor added new subfolders. The merge copies them to the trunk
> in the working copy, but decides not to add them.
>
> The directory "Tern_EE" for example was introduced in the vendor
> release (using svn_load_dirs), and I am now trying to merge the
> addition into the trunk which of course does not have Tern_EE. Why
> should it when the trunk was coppied from the older vendor release?
>
> I'm still trying to understand the book section you mentioned, but
> maybe I'm supposed to always use "--ignore-ancestry". If that makes
> it add the files that should be added, then what's the use without
> the switch? The book examples are just too simple to address this.

I haven't used the --ignore-ancestry switch myself.

All I can do is give you an example of how I can successfully merge
an updated vendor project into my local project.

Say I have a library foolib that I keep up to date in my own
repository via initially "svn import" and for subsequent updates via
svn_load_dirs.pl, such that I have this structure in my repository:

$ svn ls $REPO/vendor
foolib/
foolib/current/
foolib/current/somefile.bar
foolib/1.0/
foolib/1.0/somefile.bar
foolib/1.1/
foolib/1.1/somefile.bar
foolib/1.2/
foolib/1.2/somefile.bar

Say I've also copied foolib version 1.2 into my project. (Suppose the
reason I copy it into my project, rather than linking it in with
svn:externals, is that I want to modify the library specially for
this project, and still be able to upgrade to newer versions easily,
while retaining my modifications.)

$ svn checkout $REPO/myproject/trunk myproject-trunk
$ cd myproject-trunk/libs
$ svn cp $REPO/vendor/foolib/1.2 foolib
$ svn ci -m "adding foolib 1.2 to myproject"

Now suppose that foolib 1.3 is released and has been loaded into /
vendor/foolib/current and copied to /vendor/foolib/1.3 using
svn_load_dirs.pl. I can easily update the foolib in myproject by
merging:

$ cd myproject-trunk/libs
$ svn merge $REPO/vendor/foolib/{1.2,1.3} foolib
# manually fix any conflicts that may have arisen
# test myproject, make sure everything's ok
$ svn ci -m "updating foolib to 1.3"

-- 
To reply to the mailing list, please use your mailer's Reply To All  
function
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org
Received on Fri Feb 2 09:26:00 2007

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.