一、SVN基础与工作原理
-
什么是SVN?
SVN(Subversion)是一款集中式版本控制系统,通过中心版本库记录文件和目录的所有修改历史,支持数据恢复、历史追踪和多用户协同。
核心特点:-
代码集中存储于服务器,用户通过客户端同步(检出/更新)和提交更改。
-
每次提交生成新版本号,便于回溯和对比差异。
-
-
为何需要SVN?
-
解决多人协作代码冲突问题。
-
保留完整历史版本,支持一键回退。
-
监控代码变更记录(何人、何时、修改内容)
-
二、SVN服务器搭建(Windows环境)
方案1:图形化工具 VisualSVN Server
-
安装步骤:
-
下载地址:VisualSVN Server官网
-
双击安装 → 选择安装路径和仓库目录(如
D:\SVN\Repositories
)→ 设置端口(默认443)→ 完成安装。
https://example.com/visualsvn-install.png (图:VisualSVN安装界面)
-
-
创建仓库与用户:
-
打开 VisualSVN Server Manager → 右键
Repositories
→ 新建仓库(如MyProject
)。 -
右键
Users
创建用户(输入用户名/密码) → 右键Groups
建组(如Developers
)并分配用户26。 -
权限设置:右键仓库 →
Properties
→Security
选项卡 → 添加组/用户并设置读写权限。
-
方案2:命令行创建(跨平台)
# 创建仓库目录
svnadmin create D:\SVN\MyRepo
# 启动服务
svnserve -d -r D:\SVN\MyRepo
编辑 D:\SVN\MyRepo\conf\svnserve.conf
启用密码验证:
anon-access = none
auth-access = write
password-db = passwd
在 passwd
文件添加用户:user1 = password123
。
三、TortoiseSVN客户端全图解
1. 安装与配置
-
下载安装:
官网下载TortoiseSVN → 安装时勾选 “命令行工具”(否则无svn.exe)。 -
语言包:安装后可选中文包,右键菜单 →
Settings
→Language
切换中文。
2. 核心操作图解
(1) 检出项目(Checkout)
-
新建空文件夹 → 右键 →
SVN 检出
→ 输入仓库URL(如svn://localhost/MyRepo
)→ 输入账号密码。
https://example.com/checkout.png (图:检出操作界面)
(2) 提交更改(Commit)
-
修改文件后图标变 红色感叹号 → 右键文件/文件夹 →
SVN 提交
→ 填写日志 → 确认提交。
注意:提交前先更新(避免冲突)!
(3) 更新代码(Update)
-
右键工作副本 →
SVN 更新
→ 下载服务器最新版本。
(4) 解决冲突
当多人修改同一文件时:
-
更新时提示冲突 → 本地生成3个文件:
-
file.txt.mine
(你的修改) -
file.txt.r版本号
(他人修改/旧版本)
-
-
右键冲突文件 →
Edit Conflicts
手动合并 → 保存后标记为已解决 → 提交。
https://example.com/conflict-resolve.png (图:冲突解决界面)
(5) 版本回退
-
右键文件 →
TortoiseSVN → 更新至版本
→ 输入旧版本号 → 恢复。
四、高级功能与最佳实践
1. 分支与合并
-
创建分支:右键项目根目录 →
TortoiseSVN → 分支/标记
→ 输入分支路径(如/branches/feat-login
)。 -
合并到主干:右键主干目录 →
TortoiseSVN → 合并
→ 选择分支路径 → 确认差异。
2. 补丁管理(Patch)
-
生成补丁:右键修改的文件 →
TortoiseSVN → 创建补丁
→ 保存.patch
文件。 -
应用补丁:右键目标目录 →
TortoiseSVN → 应用补丁
→ 选择补丁文件。
3. 忽略无用文件
-
右键需忽略的文件(如
target/
,.log
)→TortoiseSVN → 加入忽略列表
,避免提交编译产物。
4. 可视化日志与版本图
-
右键项目 →
TortoiseSVN → 显示日志
→ 查看提交历史。 -
使用 修订图(Revision Graph)直观展示分支合并关系。
https://example.com/revision-graph.png (图:版本分支图)
五、日常协作最佳实践
-
操作铁律:
先更新 → 修改代码 → 再更新 → 最后提交
(避免覆盖他人代码和冲突)。 -
提交规范:
-
提交前对比差异(右键 →
检查修改
)。 -
日志清晰描述变更内容(如“修复登录页CSS错位”)。
-
-
.svn目录禁忌:
工作副本中的.svn
隐藏文件夹 存储版本元数据,切勿手动修改或删除!否则副本失效。
六、常见问题速查
问题 | 解决方案 |
---|---|
提交失败(权限不足) | 联系管理员分配仓库写权限 |
文件图标不显示状态 | 重启资源管理器或重装TortoiseSVN |
无法上传.a文件(Mac) | 修改 ~/.subversion/config 删除 *.a |
💎 教程配套资源:
掌握以上技能,您已能高效管理代码版本!如遇复杂场景(如大型分支合并),建议结合 SVN命令行工具 或 IDE插件(如Subclipse)深化操作。