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

Re: Combining several (external) repositories with my local WC

From: Ryan Schmidt <subversion-2007a_at_ryandesign.com>
Date: 2007-03-30 22:19:02 CEST

On Mar 30, 2007, at 12:52, Maxim Veksler wrote:

> The question is this: Can I merge into my local repository sources
> from other publicly available svn repositories?
>
> For example, I have repoA that holds python code.
> I would like to have django [1] under repoA/trunk/3rdParty/django/, so
> that when I do "svn up" in my working copy I get updates both from my
> local repository (http://x.y.z/repoA/trunk) and from django repo. When
> I do a commit OTOH, I will commit to my local repo both my own changes
> and the updated files pulled down from djangoproject.com.
>
> Now the optional part: If I modify a file from the django tree, that
> creates a conflict with the upstream source subversion will analyze
> the situation and deduce that I'm higher in the hierarchy of sources,
> those allow me to have this file modified (and not being synced from
> now on, yet keeping the other files synced on each update)
>
> The way I can do it do is by having a cron job doing an "export" from
> the django repo into a local copy and committing the changes at the
> end of the procedure, a very uncomfortable solution because it will
> simply "forget" to delete files if upstream deletes them but are
> committed into my local copy (can be worked around by rsync'ing and
> acting on the output, but who wants to go there...)
>
> Any ideas on the above would be great.
>
> The fast and the curies,
> Maxim.
>
> [1] svn co http://code.djangoproject.com/svn/django/trunk/

Subversion doesn't offer anything nearly so automated.

You will have to manually periodically export code from the django
repository and import it into yours. For the initial import, use svn
import. For subsequent updates, use the svn_load_dirs.pl script. It
is possible to keep your own local modifications to external
projects. You just have to make the changes in a different place from
where you load new versions with svn_load_dirs.pl. For example, if
you use /vendor/django/current to load new versions of django (this
is the recommended dir structure), then you can copy that to, for
example, /tools/django, and make your own local changes there. When a
new version of django is loaded into /vendor/django/current, you can
merge the changes into /tools/django.

Read more about all of this in the chapter of the book titled Vendor
Branches:

http://svnbook.red-bean.com/en/1.2/svn.advanced.vendorbr.html

-- 
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 Mar 30 22:19:31 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.