假设您已经建立了一个包含数百个版本的SVN存储库,并且已经存在了一年多。存储库在顶层没有标准标签,主干和分支。相反,它只是直接进入代码。
有没有办法将tags
,trunk
和branches
添加到顶层的存储库中,而无需检查整个存储库,更改目录结构然后提交?无论如何都要以递归方式添加它,这样如果你想查看一年前曾经存在的文件:
svn://svn.server.com/myfolder/myfile.txt
相反,你会在这里看到它
svn://svn.server.com/trunk/myfolder/myfile.txt
这可能吗?或者我只需要检查一切,改变顶部的目录结构并提交整个事情?
答案 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转储,更改转储文件,然后导入到干净的存储库。