SVN 简介(一)
1.简介
笔记来源:SVN 教程
一、SVN 是什么?
- 全称:Subversion,一个开源的版本控制系统。
- 核心作用:管理随时间变化的数据。它有一个中央资料档案库,能记住文件的每一次变动,让你可以恢复旧版本或查看历史。
二、关键概念与日常流程
| 概念 | 英文 | 说明 |
|---|---|---|
| 源代码库 | Repository | 所有代码统一存放的中心服务器。 |
| 提取 | Checkout | 从仓库首次获取一份完整的代码到本地。 |
| 提交 | Commit | 将本地修改后的代码上传到仓库,供他人获取。 |
| 更新 | Update | 将本地代码与仓库中的最新代码同步。 |
1.日常协作流程:
Update (获取最新) → 修改 & 调试 → Commit (提交共享)
2.冲突处理:
- 两人修改不同行:SVN 自动合并。
- 两人修改同一行:SVN 提示
Conflict (冲突),需要手动解决。
三、优势 (相比 CVS)
- 原子提交:一次提交要么全部成功,要么全部失败,不会造成数据不完整。
- 目录版本控制:可以记录目录的重命名、复制、删除等操作历史。
- 高效处理二进制文件:只保存与上一版本的差异,节省空间。
- 元数据版本控制:文件和目录都可以附带自定义属性(键值对),并且这些属性的变更也会被记录。
- 低成本分支与标签:通过类似“硬链接”的复制机制创建分支和标签,速度极快,空间占用极小。
- 灵活的网络层:可集成到 Apache HTTP 服务器,或通过 SSH 使用自定义轻量协议。
- 良好的可开发性:提供清晰的 C 语言 API,便于其他程序或语言调用。
四、总结
SVN 是一个集中式的版本控制系统,通过一个中央仓库来管理文件和目录的完整历史,支持原子提交、高效的分支与标签,并且在处理文本和二进制文件时表现一致。它解决了 CVS 在目录版本控制、原子性等方面的核心缺陷。