Eclipse 使用 SVN (Subversion) 完整教程
本教程将引导您在 Eclipse IDE 中从头到尾地使用 Subversion (SVN) 版本控制系统,我们将使用 Eclipse 内置的 SVN 客户端 EGit (with SVNKit),无需额外安装插件。

第一部分:准备工作
安装 Eclipse 和 SVN 客户端
- Eclipse IDE: 确保您已经安装了 Eclipse for Java Developers 或其他包含 SVN 支持的版本,现代的 Eclipse 通常已经内置了 SVN 支持。
- SVN 服务器: 您需要一个 SVN 仓库,这可以是:
- 本地仓库: 在您的电脑上创建一个仓库,适合个人学习。
- 远程仓库: 托管在服务器上,VisualSVN Server (Windows)、CollabNet Subversion Edge 或使用云服务如 Assembla、Unfuddle 等。
- 公共仓库: Google Code (已关闭) 或一些开源项目提供的仓库。
验证 Eclipse 是否已集成 SVN
打开 Eclipse,点击菜单栏的 Help -> About Eclipse IDE。
在弹出的窗口中,点击 Installation Details。
在已安装的软件列表中,查找以下两项,如果存在说明已集成成功:
- Eclipse Subversion Team Provider (SVNKit): 这是 SVN 客户端的核心。
- SVNKit Library: 这是其依赖的库。
如果找不到,您可以通过 Help -> Install New Software... 来安装,在 "Work with" 字段中输入 http://download.eclipse.org/technology/subversive/update-site/latest,然后搜索并安装 Subversive 插件(这是另一个流行的 SVN 客户端)。
第二部分:核心操作详解
从 SVN 仓库签出项目
这是第一次将项目从服务器下载到本地的操作。
-
打开 SVN 透视图
(图片来源网络,侵删)- 在 Eclipse 菜单栏选择
Window->Open Perspective->Other...。 - 在弹出的窗口中选择
SVN Repository Exploring,然后点击Open。 - 您会看到 Eclipse 界面左侧多了一个 "SVN Repositories" 视图。
- 在 Eclipse 菜单栏选择
-
创建新的 SVN 仓库位置
- 在 "SVN Repositories" 视图的空白处,右键点击,选择
New->Repository Location...。 - Repository URL: 输入您的 SVN 仓库地址。
http://svn.example.com/project_repo或file:///C:/svn/my_local_repo(本地仓库)。 - User ID / Password: 如果您的仓库需要认证,请输入用户名和密码。
- 点击
Finish。
- 在 "SVN Repositories" 视图的空白处,右键点击,选择
-
签出项目
- 您应该在 "SVN Repositories" 视图中看到了您刚添加的仓库,并可以看到其中的项目文件夹。
- 右键点击您想要签出的项目文件夹,选择
Check Out As...->Checkout as project configured in the .project file。 - Location: 选择项目要存放的本地工作空间目录。
- Check out depth: 通常选择
Fully recursive(完全递归),即下载所有文件和文件夹。 - 点击
Finish。
Eclipse 会开始下载项目文件,下载完成后,项目会自动出现在您的 Package Explorer 视图中。
日常开发工作流
这是最常用的循环操作:修改 -> 提交。

-
修改文件
- 在
Package Explorer中打开任何项目文件并进行修改,修改一个.java文件或一个.txt文件。 - 关键点: Eclipse 会自动检测到这些修改,在
Package Explorer或Synchronize视图中,被修改的文件图标上会出现一个蓝色的 M 标志。
- 在
-
查看修改
- 在
Package Explorer中,右键点击一个修改过的文件,选择Compare With->Base Revision。 - 这会打开一个比较器窗口,左侧是您修改后的内容,右侧是上次提交到仓库的版本,您可以清晰地看到增删改了哪些内容。
- 在
-
提交更改
- 提交单个文件: 在
Package Explorer中右键点击要提交的文件,选择Team->Commit...。 - 提交多个文件: 在
Package Explorer中按住Ctrl键选中多个要提交的文件,然后右键选择Team->Commit...。 - 这会打开一个 "Commit" 对话框。
- Enter a commit message: 这是最重要的一步! 在文本框中清晰、简洁地描述您这次提交做了什么修改。"修复了登录按钮无法点击的 Bug" 或 "添加了用户注册功能"。
- Commit: 点击
Commit按钮,将您的更改上传到 SVN 服务器。
- 提交单个文件: 在
更新项目
在您提交更改之前,或者开始新的工作之前,务必先更新,以确保您本地的代码是最新版本,避免覆盖他人的工作。
- 更新整个项目: 在
Package Explorer中右键点击项目根目录,选择Team->Update。 - 更新单个文件: 右键点击某个文件,选择
Team->Update。
重要提示: 如果您更新时遇到冲突(见下文),必须先解决冲突,然后才能提交。
添加新文件/文件夹
当您在项目中创建了新的文件或文件夹后,需要告诉 SVN。
- 在
Package Explorer中,右键点击新创建的文件或文件夹。 - 选择
Team->Add to Version Control。 - 文件图标上会出现一个 标志,表示它已被标记为待添加。
- 像往常一样进行
Commit操作,在提交对话框中,您会看到这个新文件,填写提交信息后提交,新文件就会被上传到 SVN 服务器。
删除文件/文件夹
- 在
Package Explorer中,右键点击要删除的文件或文件夹。 - 选择
Team->Delete。 - Eclipse 会弹出确认对话框,点击
OK。 - 文件图标上会出现一个红色的
X标志,表示它已被标记为待删除。 - 像往常一样进行
Commit操作,提交后,文件才会从 SVN 服务器上被真正删除。
处理冲突
当您和他人修改了同一个文件的同一行代码,并且您在提交前没有更新,就极有可能发生冲突。
冲突的表现:
- 在
Package Explorer中,冲突的文件图标上会出现一个 标志。 - 文件名会变成类似
myfile.java (conflict)的样子。
解决冲突的步骤:
- 更新项目: 首先执行
Team->Update,SVN 会尝试自动合并,但如果冲突严重,它会失败并提示您手动解决。 - 打开冲突文件: 双击打开冲突的文件,Eclipse 会用特殊的标记来显示冲突内容:
<<<<<<< .mine // 这是您修改后的版本 public void myMethod() { System.out.println("Hello from me"); } ======= // 这是服务器上的版本(通常是别人的修改) public void myMethod() { System.out.println("Hello from others"); } >>>>>>> .r123 // r123 是版本号 - 手动解决: 您需要决定保留哪个版本,或者结合两个版本的修改。删除所有 SVN 的冲突标记 (
<<<<<<<, ,>>>>>>>),并保留您最终想要的代码。 - 标记为已解决: 保存文件后,在
Package Explorer中右键点击该文件,选择Team->Mark as Resolved。 - 提交: 冲突解决后,文件上的 标志会消失,现在您可以正常
Commit您的解决了冲突的版本了。
第三部分:其他常用操作
查看历史记录
- 右键点击一个文件或文件夹,选择
Team->Show History。 - 您会看到一个时间线,列出了所有的提交记录,包括作者、提交时间和提交信息。
- 您可以双击某条记录来查看该版本的详细内容,或者右键点击某条记录选择
Compare With->Base Revision来比较两个版本之间的差异。
创建分支
分支用于开发新功能或修复 Bug,而不会影响主开发线。
- 在 "SVN Repositories" 视图中,右键点击您要创建分支的项目文件夹。
- 选择
Branch/Tag...。 - To Location: 输入新的分支 URL,通常是在主干 URL 后面加上
/branches/feature_name。http://svn.example.com/project_repo/branches/user_login_feature。 - 点击
Finish,SVN 会在服务器上创建一个项目副本(分支)。 - 您可以像签出普通项目一样,签出这个分支,并在上面进行开发。
合并分支
当分支开发完成后,需要将其更改合并回主干。
- 切换到主干: 确保您的工作目录是主干项目。
- 执行合并: 右键点击项目,选择
Team->Merge...。 - Merge Type: 选择
Merge a range of revisions。 - From / To URL: 分别输入分支的 URL 和主干项目的 URL,这会将分支上所有独有的更改合并到主干。
- 点击
Finish,Eclipse 会计算差异并应用到您的工作目录。 - 检查合并结果,解决可能出现的冲突,
Commit合并。
第四部分:最佳实践
- 先更新,后提交: 这是最重要的黄金法则。
- 写清晰的提交信息: 好的提交信息方便您和团队成员理解每次修改的目的。
- 小步快跑: 频繁地提交小的、完整的更改,而不是一次性提交大量代码。
- 不要提交编译产物: 不要把
.class文件、.jar文件、target目录、bin目录等编译或生成的文件提交到 SVN,应该在.svnignore文件中配置忽略这些文件。 - 善用分支: 为新功能、实验性代码或 Bug 修复创建独立的分支。
希望这份详细的教程能帮助您顺利地在 Eclipse 中使用 SVN!
