【问题标题】:Reorganise svn folder structure Tortoise重组svn文件夹结构乌龟
【发布时间】:2023-03-11 09:08:01
【问题描述】:

我创建了一个名为“解决方案”(包含许多项目)的 SVN 存储库,没有默认的主干、分支等结构。我想把它移到推荐的结构中。

我在服务器上创建了新的文件夹结构,其中“团队”是包含上述主干和分支的根目录。那么我应该在本地重新定位到 Team/Trunk 还是在本地复制并添加到新的 repo 文件夹?如果可能,我想在此过程中保留历史记录。

我已经阅读了许多关于这个主题的 SO 帖子,但似乎有很多方法可以判断对错,具体取决于具体情况。

另外,我是 SVN 和一般开发的新手,因此我需要 GUI 指令而不是命令行,抱歉,我不是开发人员。尽我所能。

插图:

(Existing)
    Solution/
            Project folders/

(Proposed)
    Team/
            Trunk/
                 /Project folders
            Branches/

【问题讨论】:

  • 什么是“团队”?它是一个新的存储库还是它创建了“解决方案”的孩子
  • 谢谢橄榄。团队是一个新的存储库 - 目前是空的。我是否应该在“解决方案”中创建新结构并将所有项目文件夹移动到该结构中
  • 为什么要创建另一个存储库?您不介意丢失前一个 repo 中的提交历史记录(不过,有一些方法可以将历史记录转移到新的 - 不推荐)?正如您所提到的,我将在当前存储库中创建新结构并将svn move 项目文件夹添加到其中。

标签: svn tortoisesvn trunk


【解决方案1】:

首先,您无需创建全新的存储库即可重新组织您的项目。

其次,如果可以的话,在某处检查您的整个 Solution 存储库,然后创建并svn add branches、tags、trunk 文件夹。不要提交它们;您将 svn move 每隔一个文件夹(项目文件夹)放入 trunk,然后一次性提交所有内容。

为了说明,我创建了一个 SampleRepo,检查了它,然后 svn added 和 svn committed 几个占位符项目文件夹:

然后,我在 repo checkout 的根目录创建了 branchestagstrunk 文件夹,然后svn added 他们使用 TortoiseSVN:

回购结帐现在看起来像这样:

现在,我选择所有项目文件夹,然后将它们右拖到 trunk 文件夹,选择 SVN 将版本化项目移至此处:: p>

SampleRepo 文件夹的根目录现在只包含 branchestagstrunk 文件夹。如果您右键单击 SampleRepo 文件夹中的任何空白处,然后选择 TortoiseSVN -> SVN 检查修改,您应该会看到类似这样的内容:

最后,我右键单击SampleRepo文件夹中的任意空白处,然后选择TortoiseSVN -> SVN Commit...,添加提交消息,然后单击确定

现在,如果我右键单击 SampleRepo 文件夹中的任何空白 -> TortoiseSVN -> SVN 显示日志 我会看到这个:

全部完成!

注意:我要求对 repo 进行完整签出的原因是因为这样您就可以最大限度地减少为实现所需的重组而必须进行的提交次数。您可以使用 TortoiseSVN 的 Repo 浏览器在服务器端执行重组,但随后您需要提交每个文件夹移动,一次一个。

更多阅读:

【讨论】:

  • Sameer singh,这是一个明确的答案,解释得很好,谢谢。
  • @Rufyan 很高兴为您提供帮助! :) 请记住在完成重组后将此标记为答案,并且不需要任何进一步的帮助。
  • 谢谢。之后,我必须在原始项目上执行 TortoiseSNV -> Switch... 到新的 /trunk/ 文件夹。
  • @kannas 我很高兴这有帮助!
  • @J.A.Cado 我在第一次回答问题时添加了图片。你没看见吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-05
  • 1970-01-01
  • 2014-08-20
相关资源
最近更新 更多