Since 1.5.0 (ish...) Subversion has had some support for merges from foreign
repositories. This has become a very valuable way to manage vendor branches.
But to get off the right foot, you need to first import your remote vendor code
and ideally do so with all the same node properties set on your repository's
copy of that code as are found in the original (foreign) codebase.
On a whim, I wanted to see what Subversion did if you run 'svn copy
FOREIGN-REPOS WC'. To my surprise, the copy happens, albeit with a warning
about the foreign source resulting in a disjoint working copy. (I figured we'd
just croak here.) And the warning is accurate -- the target of the copy is
left as a disjoint working copy, just a checkout of the foreign location.
I'd like to see us add a --incorporate flag to 'svn copy' which would tell
Subversion to slurp up that disjoint working copy, connecting it to the primary
working copy as a single scheduled-for-addition subtree, with node props all in
place and so on.
Alternatively, we could take a more flexible route here and bind this
functionality not to 'svn copy' but to 'svn add'. 'svn add --incorporate' would
recursive crawl a tree, scheduling it for addition and maintaining any
Subversion properties found in the tree. I think I actually like this idea
better than the 'svn copy' concept.