1、自由、开源的版本管理系统南京大学软件学院20091 1 Subversion简介 2 版本控制的基本原理 3 Subversion基础 4 Subversion基本工作流程及基本操作 CheckOut, Commit, Update, Status 5 Subversion高级操作 Branch/Tag, Merge 6 Subversion其他操作(演示) 7 常见 Subversion的 GUI客户端使用(演示)内容简介1 Subversion简介 Subversion的作用 Subversion的历史 Subversion的特性 Subversion的架构Subversion的作用 一个
2、自由,开源的版本控制系统 一个通用系统,不是简单的一个 SCM系统 以替代 CVS为目标 可以管理任何类型文件,并且追踪变更 不具有某些和开发紧密结合的特性,如支持某种特定的编程语言,集成构建工具等 应用:版本管理,网络硬盘? 网址: http:/subversion.tigris.orgSubversion的历史 2000年, CollabNet公司开始寻找 CVS的替代产品 2月,这个公司联系了 Open Source Development with CVS的作者 Karl Fogel,他同意为这个项目工作。同时,他还联系了其他几个人一起开发这个新系统 3月, Subversion开始详
3、细设计和编码 2001年 8月 31日, Subversion第一个完整版本问世 经过 1.0, 1.1, 1.2直到现在的 1.4.3版Subversion的特性(和 CVS比较) 和 CVS的相似性 目录的版本化 更加好的文件版本管理(例如对文件拷贝,重命名的处理) 提交的原子性 元数据的版本化 可选的网络层 对文本文件和二进制文件一致的差异比较算法 高效的分支( branch)和标签( tag)操作 良好的可维护性Subversion的架构2 版本控制的基本原理 客户 /服务器架构的版本控制简述 版本控制的数据共享模型 数据共享的问题 锁定 -修改 -解锁方案 拷贝 -修改 -合并方案 冲突及解决 两种方案的对比及选择 Subversion的实现客户 /服务器架构的版本控制 版本库( Repository):按照一定格式存储了所有数据,包括文件和目录 经过授权的客户端可以连接到版本库,读写库中的文件 版本库和普通文件服务器的不同:版本库会记录每一次的更改,所以,客户端可以任意查询更改的历史。例如: ApplicationContext.java的1451版和 1450版相比修改了什么?谁作的修改?什么时候作的修改?等等版本控制数据共享模型 版本控制系统的核心任务:协作编辑和数据共享 基础问题:怎样允许用户共享信息,并且不会因意外而互相干扰? 数据共享问题的产生 解决办法