3

我的工作区中有一个项目(没有主干和分支),需要创建当前版本的副本,以便在开发新功能时为此版本提供错误修复,如下所述:http: //nedbatchelder.com/text /quicksvnbranch.html。在不影响存储库的主要结构和其他开发人员机器上签出的项目的情况下,推荐的方法是什么?

4

2 回答 2

8

如果您在创建存储库时没有建立某种结构,那么您现在就无法这样做,而不会对现有用户产生一些影响。存储库就像一个文件系统。您现在可以创建该结构,但由于它涉及到移动项目的存储位置,因此需要用户从新位置结帐,或使用切换选项更新他们现有的结帐以指向新位置。

你怎么做呢?

1) 使用 svn mkdir 在存储库中创建主干和分支文件夹。您可以使用创建文件夹选项从 SVN 存储库视图中的 Subclipse 执行此操作。

2)然后您需要将存储库根目录中的所有文件和文件夹移动到主干文件夹,以便该主干现在是您项目的根目录。我会使用命令行执行此操作:

$ svn mv url://host/repos/folder1 url://host/repos/trunk -m "Move folder1 to trunk"

$ svn mv url://host/repos/folder2 url://host/repos/trunk -m "Move folder2 to trunk"

$ svn mv url://host/repos/file1 url://host/repos/trunk -m "Move file1 to trunk"

完成后,存储库的根目录现在只包含主干和分支文件夹。

3) 在 Eclipse 中现有的签出项目上,执行 Team > Switch。使用浏览按钮在对话框中选择中继文件夹,然后单击确定。这将更新您的工作副本,使其指向新位置。

所有用户都需要执行第 3 步。

最后,您现在可以创建分支了。只需将主干复制到分支文件夹即可创建分支。您可以在 Eclipse 中使用 Team > Create Branch 执行此操作

使用 Team > Switch 在您的分支和主干之间来回切换。

使用 Team > Merge 将更改从主干合并到分支,反之亦然。

于 2013-05-01T13:34:30.833 回答
3

Eclipse的Subversive插件允许您将项目共享到 svn 作为多项目布局(trunk/branches/tags文件夹结构)。

如果您已经在没有trunk/branches/tag布局的情况下将项目提交给 svn,则必须先通过右键单击项目 > 选择团队>断开连接来断开项目与 svn 的连接

系统将提示您删除或保留 SVN 元信息(.svn 文件夹)

在此处输入图像描述

选择“同时删除 SVN 元信息”以与多个项目布局共享项目。(这将清除您项目现有的 svn 历史记录,因此如果您想保留原始副本及其 svn 日志,请先将您的项目及其.svn文件夹复制到备份文件夹中)

一旦您的项目断开连接,请按照以下步骤将其作为多项目布局共享到 svn:

  1. 右键单击您的项目
  2. 选择团队>共享项目> SVN
  3. 选择您的存储库 >高级模式> 在项目存储库布局下,选择“使用具有指定根名称的多个项目布局” > 选中使用 Subversion 推荐的布局
  4. 结束

在此处输入图像描述

于 2015-01-15T14:58:07.470 回答