Question

I have a single SVN repository with two separate projects:

project_1
    /trunk
    /branches
        /1.0
    /tags
        /1.0.0

project_2
    /trunk
    /branches
        /1.0
    /tags
        /1.0.0

As you can see, each has identical branch/tag numbers. Imagine there are different files in each project.

I want to merge these into a single new project, project_3. That is, the trunk of the new project will have all files/histories from the trunk of project_1 and project_2, the 1.0 branch will have all files/histories from the 1.0 branches of project_1 and project_2, and the 1.0.0 tag will have all files/histories from the 1.0.0 tags of project_1 and project_2.

My first thought was to do accomplish this using multiple svn cp executions. A big problem I ran into was not being able to copy just the subdirectories of a directory to another directory. I am having trouble understanding whether the solutions discussed in that post apply to the situation here. Also, the post and many of the solutions are six years old and I wonder whether there have been any change to SVN that would help here.

The goal is to have a single unified project with as much history preserved as possible. What is the best approach to take here? Please note that switching to another VCS is not an option.

Was it helpful?

Solution

If you want to merge data and history, you can't use SVN copy" you must to use dump|load cycles:

svnrdump sump URL/OF/DIR ... > dump + svnadmin load --ignore-uuid --parent-dir NEW_PARENT ... < dump

Instead of svnrdump you can try svnadmin dump | svndumpfilter

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top