Domanda

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.

È stato utile?

Soluzione

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top