Eclipse 使用 SVN 教程
本教程将引导您完成在 Eclipse IDE 中集成和使用 Subversion (SVN) 版本控制系统的全过程。

第一部分:准备工作
在开始之前,请确保您已准备好以下环境:
- Eclipse IDE:已安装并正常运行,推荐使用最新的 Eclipse IDE for Java Developers 或其他您需要的版本。
- SVN 仓库地址:您需要一个 SVN 服务器的 URL 地址,这可能是您公司内部的 SVN 服务器,或者是像 Assembla、Codebase 等提供的公共 SVN 仓库。
- 示例:
http://svn.example.com/project/trunk或svn+ssh://user@svn.example.com/project/trunk
- 示例:
- 用户名和密码:用于访问 SVN 仓库的凭据。
第二部分:安装 SVN 插件 (Subclipse 或 EGit with SVNKit)
Eclipse 本身不自带 SVN 客户端,我们需要安装插件,最常用的是 Subclipse,另一个选择是使用 EGit(Git 客户端),它也集成了对 SVN 的支持。
安装 Subclipse (推荐)
-
打开 "Install New Software":
- 启动 Eclipse。
- 点击菜单栏的 Help -> Install New Software...。
-
添加 Subclipse Update Site:
- 在弹出的窗口中,点击右侧的 Add... 按钮。
- 在 "Name" 字段中输入
Subclipse。 - 在 "Location" 字段中输入更新站点地址:
http://subclipse.tigris.org/update_1.10.x(这是最新的稳定版 1.10 的地址,您也可以使用http://subclipse.tigris.org/update_1.8.x等其他版本)。 - 点击 OK。
-
选择并安装插件:
- 等待 Eclipse 加载可用软件列表。
- 在 "Work with" 下拉框中选择刚刚添加的
Subclipse。 - 在列表中,勾选 "Subclipse" 或其核心组件 "SVNKit Client",SVNKit 是一个纯 Java 的 SVN 客户端,兼容性更好。
- 点击 Next。
-
接受协议并完成安装:
- 在下一页,仔细阅读许可证协议,勾选 "I accept the terms of the license agreement"。
- 点击 Finish。
- Eclipse 会自动下载并安装所选组件,安装过程中可能会提示您确认安全证书,点击 OK 即可。
- 安装完成后,Eclipse 会提示您重启,请点击 Restart Now。
第三部分:从 SVN 仓库检出项目 (Checkout)
这是将远程代码库首次下载到本地的过程。
-
打开 SVN 透视图:
- 点击菜单栏的 Window -> Open Perspective -> Other...。
- 在列表中选择 SVN,然后点击 OK。
-
创建新的 SVN 仓库位置:
- 在 SVN 透视图的 "SVN Repositories" 视图中,右键点击空白处,选择 New -> Repository Location...。
-
输入仓库信息:
- URL:粘贴您的 SVN 仓库地址。
- Repository name:为这个仓库位置起一个你喜欢的名字,"MyProject SVN"。
- 如果需要,可以勾选 "Use 'svn' command line client" 来使用系统自带的 SVN 命令行工具(不推荐,SVNKit 更稳定)。
- 点击 Finish。
-
输入认证信息:
- 如果仓库需要认证,Eclipse 会弹出对话框,输入您的 User Name 和 Password。
- 重要:勾选 Save password,这样下次就不需要重复输入了。
- 点击 OK。
-
检出项目:
- 您的仓库应该出现在 "SVN Repositories" 视图中,展开仓库,你会看到项目文件夹(如
trunk,branches,tags)。 - 右键点击 你想要检出的项目(通常是
trunk)。 - 选择 Checkout...。
- 您的仓库应该出现在 "SVN Repositories" 视图中,展开仓库,你会看到项目文件夹(如
-
选择检出目标:
- 在弹出的窗口中,确保 "Check out as a project in the workspace" 被选中。
- Project name:Eclipse 通常会自动填好项目名称。
- Check out into:选择将项目检出到哪个工作空间目录,保持默认即可。
- 点击 Finish。
-
等待检出完成:
- Eclipse 会开始下载项目文件,进度会显示在底部的 "SVN" 视图中。
- 下载完成后,项目会自动出现在 Eclipse 的 "Project Explorer" 视图中,你就可以开始工作了。
第四部分:日常 SVN 操作
现在你已经有了项目,让我们来看看最常用的几个操作。
提交
当你修改了代码,需要将更改上传到 SVN 服务器时,使用提交。
-
右键点击 项目或你想要提交的特定文件/文件夹。
-
选择 Team -> Commit...。
-
在弹出的对话框中:
- Enter a commit message:必须填写,清晰地描述你这次提交做了什么修改("Fixed login bug"、"Added user profile page"),这是版本控制的关键!
- 在下方的 "Uncommitted changes" 列表中,确认你要提交的文件。
- 点击 OK。
更新
在提交之前,或者开始工作之前,最好先更新一下,确保你本地的代码是最新版本,避免与他人冲突。
-
右键点击 项目。
-
选择 Team -> Update。
-
Eclipse 会从服务器拉取最新的代码,如果有冲突,会提示你(详见第五部分)。
添加新文件/文件夹
当你新建了文件或文件夹后,需要告诉 SVN 它们需要被版本控制。
- 在 "Project Explorer" 中,右键点击 新建的文件/文件夹。
- 选择 Team -> Add to Version Control。
- 此时文件只是被标记为 "Added",你还需要 Commit 才能真正上传到服务器。
删除文件/文件夹
- 右键点击 你想要删除的文件/文件夹。
- 选择 Team -> Delete。
- 这会从 SVN 仓库中移除该文件,和 Add 一样,你需要 Commit 来使删除生效。
第五部分:解决冲突
这是协作开发中最常见也最重要的问题。
什么是冲突? 当你修改了本地文件,但在你提交之前,其他人已经修改了服务器上同一个文件的相同部分,并提交了,这时 SVN 无法自动合并你的修改,就会产生冲突。
如何解决冲突?
-
尝试更新:当你提交时,SVN 检测到冲突,提交会失败,并提示你先更新。
- 执行 Team -> Update。
- Eclipse 会标记出冲突的文件,在 "Project Explorer" 中,冲突的文件名旁边会出现一个 黄色感叹号 或 红色 X 标记。
-
打开冲突文件:双击打开冲突的文件,文件内容会包含冲突标记,通常如下:
<<<<<<< .mine // 这是你的修改 public void myMethod() { // 你的代码 } ======= // 这是服务器的最新修改 public void myMethod() { // 其他人修改的代码 } >>>>>>> .r123 // r123 是版本号 -
手动解决冲突:
- 你需要手动编辑这个文件,决定保留谁的代码,或者融合两者的代码。
- 删除 所有的
<<<<<<<、、>>>>>>>等冲突标记。 - 保留 最终你想要的代码版本。
-
标记冲突已解决:
- 手动修改完成后,右键点击 该文件。
- 选择 Team -> Mark as Resolved。
-
提交:
- 再次执行 Team -> Commit...,将你解决冲突后的代码提交到服务器。
第六部分:其他常用操作
-
查看历史记录:
- 右键点击文件 -> Team -> Show History。
- 你可以看到该文件的所有修改记录,包括谁在什么时候提交了什么,可以右键点击某个版本,选择 Compare With -> Revision 来查看具体修改。
-
比较版本:
- 在历史记录窗口中,选择两个版本,右键点击 -> Compare With Each Other。
- 或者右键点击文件 -> Team -> Compare With -> Revision...,输入要比较的版本号。
-
回滚:
- 在历史记录窗口中,找到你想回滚到的版本,右键点击 -> Revert Changes from This Revision。
- 这会生成一个反向的补丁来撤销该版本的修改,然后你需要 Commit 这个回滚操作。
总结与最佳实践
- 先更新,后提交:这是黄金法则,在开始工作前和提交前,养成先
Update的习惯。 - 写好提交信息:清晰的提交信息是团队协作的基石。
- 小步提交:不要把大量不相关的修改放在一次提交中,一个功能一个提交,一个 bug 修复一个提交。
- 及时解决冲突:遇到冲突不要慌,按照上述步骤冷静解决。
- 善用历史记录:遇到问题多使用
Show History和Compare功能,能帮你快速定位问题。
希望这份详细的教程能帮助您顺利地在 Eclipse 中使用 SVN!如果您有任何问题,欢迎随时提问。
