【问题标题】:How to add tags/trunk/branches to established SVN repo?如何将标签/主干/分支添加到已建立的 SVN 存储库?
【发布时间】:2011-10-03 04:40:27
【问题描述】:

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

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

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

你会在这里看到它

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

这可能吗?还是我只需要检查所有内容,更改顶部的 dir 结构并提交整个内容?

【问题讨论】:

    标签: svn repository


    【解决方案1】:

    我相信递归执行此操作的唯一方法是使用 svnadmin 转储,更改转储文件,然后导入到干净的 repo。

    【讨论】:

      【解决方案2】:

      您无需查看 repo 即可对其进行操作。

      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检查根目录,根据需要安排目录结构,提交。

      除了重写整个 repo 的历史记录之外,没有什么好方法可以完成递归更改。

      【讨论】:

      • 这将完成您所追求的,如果做得正确,您将能够跟踪移动前后文件的日志历史记录。我会提醒您仔细计划这一点 - 我曾经设法在某一点上真正阻止这种类型的移动,结果丢失了 2 年的提交历史。
      猜你喜欢
      • 2012-10-28
      • 2012-10-19
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多