原文正文
读了 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‘)":
- 点击 "Finish"。将会打开一个新的对话框。选中你要提交的所有文件,输入一个注释,然后点击 "OK";
- 切换到 "SVN Repository Exploring" 视图模式(Eclipse -> 点击 "Window" 菜单 -> 选择 "Open Perspective" -> "Other..." -> 在打开的 "Open perspective" 对话框中选中 "SVN Repository Exploring" 并点击 "OK");
- 可以看到 swifton 项目 SVN 仓库的主干、分支、标签都已经建好;
- 这是 TortoiseSVN 的查看结果:
由此看来,原来 3 步才能完成的事情,如今一步即可,不愧是 Subclipse 最新版。
2. 创建一个分支
- 切换回原来的视图模式;
- 在分支中提交任何你想要的修改;
- 在 "Navigator" 窗口中右击你的项目,选择 "Team" -> "Update";
- 右击你的项目然后选择 "Team" -> "Branch..."
- 弹出 "Create Branch" 对话框中
- "Branch:" 输入 "swifton1217"(分支名随便起。译者在项目名后面加的日期代表在该日下建的一个分支),勾选 "Start working in the branch"(可选项。译者准备在该分支下进行开发,所以选中):
- 输入一个注释,然后点击 "OK"。等待 SVN 仓库创建分支结束;
- Eclipse 的 Navigator 窗口可以看出你现在已经在 swifton1217 分支副本下进行开发了:
- 切换到 "SVN Repository Exploring" 视图模式,可以看到 swifton1217 分支下已经有了一个该项目的副本:
时间: 2024-10-06 04:01:19