How to change structure of subversion repository

svn

I'm a newbie with Subversion, so I don't now if this is a dumb question:

I've inherited a subversion repository with a flat structure with no /trunk /tags /branches top level).

I'd like re-structure it so that it follows the

/trunk
/tags
/branches

layout.

Is this possible?

Best Answer

Especially if you're using Subversion 1.4, see this answer for an alternative:

svn: replace trunk with branch.

Otherwise, move is the simplest way to achieve the restructuring. As @JoelFan said, move will work on directories, so you can perform this operation without a working copy:

svn mkdir --quiet --message "Restructuring" http://svnhost/svnrepos/trunk
svn mkdir --quiet --message "Restructuring" http://svnhost/svnrepos/tags
svn mkdir --quiet --message "Restructuring" http://svnhost/svnrepos/branches

then, appropriate move commands for your sources:

svn move --message "Restructuring" http://svnhost/svnrepos/dir01 http://svnhost/svnrepos/trunk/dir01

Note: If the existing repository has a structure like:

/repos
    /projectA
        /branches
        /tags
        /trunk
    /projectB
        /branches
        /tags
        /trunk

I'd suggest leaving it that way - it would make separating the projects into separate repositories very straightforward if for some reason you need to do so.