首页 > 代码库 > 使用 Eclipse 的 SVN 插件创建项目的主干/分支/标签

使用 Eclipse 的 SVN 插件创建项目的主干/分支/标签

原文正文

读了 Mark Phippard 的博客以及《Subversion 与版本控制》之后,我了解到 分支/标签 是 SVN 很棒的特性之一。但我在使用推荐的 "trunk"、"branches"以及"tags"文件夹创建我自己的目录结构的时候颇是花了一点时间。本文将分步介绍创建  Subclipse 项目然后建立一个分支。本文假定你已经安装好了 Subclipse 并建立了一个 SVN 仓库。如果你还没有,参考《集成 SVN 插件到 Eclipse 全过程》。

1. 把你的 Eclipse 项目添加到 SVN 仓库里的一个 "trunk" 文件夹中

  • 从一个名为 "myproject" 的 Eclipse 项目开始;
  • 在 "Navigator" 窗口中,右击你的项目,选择 "Team" -> "Share Project...";
  • 选中 "SVN" 然后点击 "Next";
  • 选中你的 SVN 仓库(本文假定使用的仓库在 "svn://localhost")然后点击 "Next";
  • 在 "Enter Folder Name" 对话框中,选中 "Use specified folder name" 选项并输入 "myproject/trunk"。 "URL:" 框会有类似于"svn://localhost/myproject/trunk"的显示。点击 "Next";
  • 点击 "Finish"。将会打开一个新的对话框。选中你要提交的所有文件,输入一个注释,然后点击 "OK"。我的 Eclipse 的 "Console" 有以下输出:
    Filesystem has no item
svn: URL ‘svn://localhost/myproject/trunk‘ non-existent in that revision

    Bad URL passed to RA layer
svn: URL ‘svn://localhost/myproject‘ non-existent in revision ‘234‘

mkdir -m "Initial import." svn://localhost/myproject
mkdir -m "Initial import." svn://localhost/myproject/trunk
checkout -N -r HEAD svn://localhost/myproject/trunk
    Checked out revision 236.
add -N C:\path\to\myproject\.settings
    A         C:/path/to/myproject/.settings
add -N C:\path\to\myproject\.settings\org.eclipse.cdt.core.prefs
    A         C:/path/to/myproject/.settings/org.eclipse.cdt.core.prefs
add -N C:\path\to\myproject\.cdtbuild
    A         C:/path/to/myproject/.cdtbuild
add -N C:\path\to\myproject\.settings\org.eclipse.cdt.managedbuilder.core.prefs
    A
C:/path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs
add -N C:\path\to\myproject\.cdtproject
    A         C:/path/to/myproject/.cdtproject
add -N C:\path\to\myproject\.project
    A         C:/path/to/myproject/.project
commit -m "Initial import." C:/path/to/myproject/.cdtbuild C:/path/to/myproject/.cdtproject C:/path/to/myproject/.project C:/path/to/myproject/.settings C:/path/to/myproject/.settings/org.eclipse.cdt.core.prefs C:/path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs
    Adding         path/to/myproject/.cdtbuild
    Adding         path/to/myproject/.cdtproject
    Adding         path/to/myproject/.project
    Adding         path/to/myproject/.settings
    Adding         path/to/myproject/.settings/org.eclipse.cdt.core.prefs
    Adding         path/to/myproject/.settings/org.eclipse.cdt.managedbuilder.core.prefs
    Transmitting file data ...
    Committed revision 237.

2. 在 SVN 仓库中创建 "branches" 和 "tags" 文件夹

  • 切换到 "SVN Repository Exploring" 视图模式(Eclipse -> 点击 "Window" 菜单 -> 选择 "Open Perspective" -> "Other..." -> 在打开的 "Open perspective" 对话框中选中 "SVN Repository Exploring" 并点击 "OK");
  • 在 "SVN Repository" 窗口中,展开 SVN 树并右击 "myproject" -> 选择 "New" -> "New remote folder";
  • 在 "Create a new remote folder" 对话框中,展开 SVN 树并选中 "myproject"。"Folder name:" 输入 "branches"。点击 "Next";
  • 现在打开 "myproject" 目录可以看到 "branches" 和  "trunk" 子目录;
  • 我的 Eclipse 控制台有以下输出:
mkdir -m "Created branches folder." svn://localhost/myproject/branches

  • 重复这几步来创建一个 "tags" 目录;

3. 创建一个分支

  • 切换回原来的视图模式;
  • 在分支中提交任何你想要的修改;
  • 在 "Navigator" 窗口中右击你的项目,选择 "Team" -> "Update";
  • 右击你的项目然后选择 "Team" -> "Branch/Tag...";
  • 弹出的 "Copy (Branch/Tag)" 对话框中,"To URL:" 文本框输入 "svn://localhost/myproject/branches/mybranch"("From WC at URL:" 应该显示为 "svn://localhost/myproject/trunk");
  • 保留 "HEAD revision in the repository" 选项的选中状态,输入一条注释,然后点击 "OK";
  • 我的 Eclipse 控制台输出如下:
copy -rHEAD svn://localhost/myproject/trunk svn://localhost/myproject/branches/mybranch

4. 切换你的工作副本到分支

  • 你现在可以随意在主干和分支之间切换你的工作副本了;
  • 右击你的项目,选择 "Team" -> "Switch to another Branch/Tag...";
  • "To URL:" 文本框输入 "svn://localhost/myproject/branches/mybranch",点击 "OK";
  • 我的控制台输出如下:
switch svn://localhost/myproject/branches/mybranch C:/path/to/myproject -rHEAD At revision 239.

5. 现在你就可以使用《Subclipse 分支和标签支持加强版》中讨论的那些特性了

本文开分支步骤参考自《如何使用 Subclipse 建分支》。

原文链接:http://www.saltycrane.com/blog/2007/03/how-to-setup-subclipse-project-to/。


译者续文

作者写这篇文章的时间是 07 年,那会 Eclipse 才出到 3.3(现在已经 4.4 了),Subclipse 也就出到 1.3.1(现在已经出到 2.0 了)。所以原文很多步骤都不太适合最新版本的 svn 插件了。所以译者在原作者的基础上,结合最新版的 Eclipse/Subclipse,对原文做了一些改进,以备自己参考,同时也希望可以方便到更多的同行。译者的 Eclipse 版本是 4.4.1(也就是 luna-SR1),Subclipse 版本是 2.0.1,这些都是截至本文发博日为止最新版的。以下是译者实际操作的步骤记录。

1. 把你的 Eclipse 项目添加到 SVN 仓库里的一个 "trunk" 文件夹中

  • 从一个名为 "swifton" 的 Eclipse 项目开始;
  • 在 "Navigator" 窗口中,右击你的项目,选择 "Team" -> "Share Project...";
  • 选中 "SVN" 然后点击 "Next";
  • 选中你的 SVN 仓库(本文假定使用的仓库在 "svn://localhost")然后点击 "Next";
  • 这时进入了 "Specify the project(s) location" 步骤;
  • 选择 "Advanced Mode:" -> "Name on Repository" 选择 "Use project name"(你也可以给它取个别名,如果你不怕项目多了混淆的话。译者喜欢所见即所得模式,保留项目名),"Project Repository Layout" 框选择 "Use single project layout"(你也可以选择 "Use Repository Location Layout",一个 trunk 下面有多个项目。译者手底下目前只有这一个项目,所以选择一个项目下一个 trunk 的模式,以后增加项目的话,同目录下加项目然后挨个建 trunk),勾选上 "Use Subversion recommended layout (‘trunk‘,‘branches‘ and ‘tags‘)":
Specify the project(s) location
  • 点击 "Finish"。将会打开一个新的对话框。选中你要提交的所有文件,输入一个注释,然后点击 "OK";
  • 切换到 "SVN Repository Exploring" 视图模式(Eclipse -> 点击 "Window" 菜单 -> 选择 "Open Perspective" -> "Other..." -> 在打开的 "Open perspective" 对话框中选中 "SVN Repository Exploring" 并点击 "OK");
  • 可以看到 swifton 项目 SVN 仓库的主干、分支、标签都已经建好;
  • 这是 TortoiseSVN 的查看结果:
TortoiseSVN
由此看来,原来 3 步才能完成的事情,如今一步即可,不愧是 Subclipse 最新版。

2. 创建一个分支

  • 切换回原来的视图模式;
  • 在分支中提交任何你想要的修改;
  • 在 "Navigator" 窗口中右击你的项目,选择 "Team" -> "Update";
  • 右击你的项目然后选择 "Team" -> "Branch..." 
  • 弹出 "Create Branch" 对话框中
  • "Branch:" 输入 "swifton1217"(分支名随便起。译者在项目名后面加的日期代表在该日下建的一个分支),勾选 "Start working in the branch"(可选项。译者准备在该分支下进行开发,所以选中):
create_branch_swifton1217
  • 输入一个注释,然后点击 "OK"。等待 SVN 仓库创建分支结束;
  • Eclipse 的 Navigator 窗口可以看出你现在已经在 swifton1217 分支副本下进行开发了:
navigator_swifton1217

  • 切换到 "SVN Repository Exploring" 视图模式,可以看到 swifton1217 分支下已经有了一个该项目的副本:

SVN_Repository_Exploring_swifton1217

使用 Eclipse 的 SVN 插件创建项目的主干/分支/标签