如何在已建立的SVN repo中添加标签/中继/分支?

时间:2011-07-11 22:14:03

标签: svn repository

假设您已经建立了一个包含数百个版本的SVN存储库,并且已经存在了一年多。存储库在顶层没有标准标签,主干和分支。相反,它只是直接进入代码。

有没有办法将tagstrunkbranches添加到顶层的存储库中,而无需检查整个存储库,更改目录结构然后提交?无论如何都要以递归方式添加它,这样如果你想查看一年前曾经存在的文件:

svn://svn.server.com/myfolder/myfile.txt

相反,你会在这里看到它

svn://svn.server.com/trunk/myfolder/myfile.txt

这可能吗?或者我只需要检查一切,改变顶部的目录结构并提交整个事情?

2 个答案:

答案 0 :(得分:4)

你不需要检查回购来操纵它。

svn mv svn://svn.server.com/myfolder svn://svn.server.com/trunk
svn mkdir svn://svn.server.com/tags svn://svn.server.com/branches

如果即时提交很可怕,您可能也会对svn checkout --depth='immediates'感兴趣,它只会检出目标目录中的文件和文件夹 - 而不是文件夹的内容。使用--depth=immediates签出根目录,根据需要安排目录结构,提交。

没有一种好方法可以完成递归改变而不是重写整个回购的历史。

答案 1 :(得分:1)

我认为以递归方式执行此操作的唯一方法是使用svnadmin转储,更改转储文件,然后导入到干净的存储库。