如何更改subversion存储库的结构?

10 svn

我是Subversion的新手,所以如果这是一个愚蠢的问题我现在不知道:

我继承了一个平面结构的subversion存储库,没有/ trunk/tags/branches top level).

我想重新组织它,以便它遵循

/trunk
/tags
/branches
Run Code Online (Sandbox Code Playgroud)

布局.

这可能吗?

Ken*_*tle 21

特别是如果您使用的是Subversion 1.4,请参阅此答案以获取替代方案:

svn:用branch替换trunk.

否则,move是实现重组的最简单方法.正如@JoelFan所说,move将在目录上工作,因此您可以在没有工作副本的情况下执行此操作:

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
Run Code Online (Sandbox Code Playgroud)

然后,move为您的来源提供适当的命令:

svn move --message "Restructuring" http://svnhost/svnrepos/dir01 http://svnhost/svnrepos/trunk/dir01
Run Code Online (Sandbox Code Playgroud)

注意:如果现有存储库具有如下结构:

/repos
    /projectA
        /branches
        /tags
        /trunk
    /projectB
        /branches
        /tags
        /trunk
Run Code Online (Sandbox Code Playgroud)

我建议保留这种方式 - 如果由于某种原因你需要这样做,它会将项目分成单独的存储库非常简单.


rz.*_*rz. 1

是的。只需制作所需的顶级结构,然后使用 svn add 添加这些目录即可。进行签入(svn ci),然后使用 svn move 将内容移动到所需的位置。中间的签到可能根本没有必要,但我就是这样做的。