You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Maxim Veksler <hq...@gmail.com> on 2007/03/30 17:52:12 UTC

Combining several (external) repositories with my local WC

Hello list,

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/


-- 
Cheers,
Maxim Veksler

"Free as in Freedom" - Do u GNU ?

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

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

Posted by Ryan Schmidt <su...@ryandesign.com>.
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