5

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

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

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

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

插图:

(Existing)
    Solution/
            Project folders/

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

1 回答 1

11

首先,您不需要创建一个全新的存储库来重新组织您的项目。

其次,如果可以的话,在某处检查整个解决方案存储库,并创建分支、标签、主干文件夹。不要提交它们;您将所有其他文件夹(项目文件夹)放入主干,然后一次性提交所有内容。svn addsvn move

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

初始 repo 文件夹结构

然后,我在repo checkout 的根目录创建了branchestagstrunksvn add文件夹,然后使用 TortoiseSVN 编辑它们:

SVN 在 TortoiseSVN 中添加选项

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

添加分支标签树干文件夹后的回购结帐

现在,我选择所有项目文件夹,然后将它们右键拖动到主干文件夹,在此处选择SVN Move versioned item(s)

TortoiseSVN 的 svn 移动选项

SampleRepo文件夹的根目录现在只包含branchtagstrunk文件夹。如果您右键单击SampleRepo文件夹中的任何空白处,然后选择TortoiseSVN -> SVN Check for modified,您应该会看到如下内容:

svn move 后 repo checkout 的状态

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

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

回购日志

全部做完!

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

更多阅读:

于 2013-08-20T07:53:36.260 回答