270 likes | 595 Views
vss 、 svn…… 属于同一种工具: VCS(Version Control System). VCS 简介. 什么是 版本 (version) ?什么是 版本控制 (version control) ? 如果是在一个团队中呢? VCS( 版本控制系统 ) ,就是帮我们自动化这些工作的工具。 Version 的别称 /VCS 的别称: revision/RCS, SCM, CM…. VCS 带来的好处. 记录整个项目的历史以及开发过程中的所有演变过程。对于每个变化, VCS 会记录:“ 谁 ”,在“ 何时 ”,因为“ 什么原因 ”,做了“ 哪些修改 ”。
E N D
VCS简介 什么是版本(version)?什么是版本控制(version control)? 如果是在一个团队中呢? VCS(版本控制系统),就是帮我们自动化这些工作的工具。 Version的别称/VCS的别称:revision/RCS, SCM, CM…
VCS带来的好处 记录整个项目的历史以及开发过程中的所有演变过程。对于每个变化,VCS会记录:“谁”,在“何时”,因为“什么原因”,做了“哪些修改”。 在团队中,2个人对同一个文件进行修改,VCS可以帮助自动处理这种情况,而避免错误。 当发生了错误,可以使用VCS恢复到错误发生前的状态,来帮助找出出错的原因。 VCS允许一个项目保持多个版本同时进行开发。
最大化VCS的优势 • 基本要素: • 工具 • 规范 • 决定要素: • 良好的团队合作意识
VCS的两种常见模型 传统的VCS基于C/S模式。 管理“并行访问”存在两种不同的模式 文件锁(File-locking)模式 版本合并(Version-merging)模式
文件锁模式 禁止“并行(写)访问”。 多个用户可以同时查看VCS中某个文件(的某个版本)。 用户A要修改某个文件,需要首先“锁定”这个文件。这样其他用户就不能再对这个文件进行编辑(还是可以查看),直到用户A“解锁”这个文件。
版本合并模式 105 100 106 提交自己的修改 取出版本 合并 修改 查看同时别人所做的修改 更新到服务器最新的版本 工作流程:
VCS基本术语 基线(Baseline) 档案库(Repository) 工作版本(Working Copy) 取出(Checkout) 更新(Update) 提交(Commit) 变更(Change) 变更列表/变更集(Change List)
VCS基本术语(2) 合并(Merge) 分支(Branch) 冲突(Conflict) 导入(Import) 导出(Export)
具体的VCS例子 盟军项目svn 盟军项目vss
VSS客户端介绍 • 基于File-locking模式(2005版号称兼容Version-merging模式) • 优点: • 使用简单 • 与MS开发工具整合较好 • 较适合二进制文件/Word文件管理 • 缺点: • 只能在内部局域网环境下访问 • 不适合需要很强合作性的程序开发团队
VSS日常使用 设置“工作文件夹(Working Folder)” 添加新文件 添加新文件夹 删除文件/文件夹 文件/文件夹重命名
VSS日常使用(2) Get与Edit 多个文件夹存放同一文件 公共文件编辑 查看日志/回滚
VSS使用规则 Check-out的文件,在修改完后必须立即check-in 对于公共文件夹中的文件,如果需要checkout,必须通知文件所有人
SVN客户端介绍 • Svn是基于Version-merging模式的vcs,同时提供File-lock机制 • TortoiseSVN:Windows下最著名的svn图形化客户端 • 优点: • 和Windows文件管理器整合良好 • 提供了方便的图形化工具(diff、merge…)
TortoiseSVN图标 normal modified conflict added deleted non-versioned ignored readonly locked
SVN日常操作 Checkout Update Commit
SVN日常操作(2) 解决冲突 查看log
《盟军》项目svn提交规则 必须保证本地编译通过,包括Debug、Release版本 必须保证程序运行、退出正常;保证退出时没有内存泄漏 可以不保证版本没有运行时错误(谁能保证没bug?) 对于比较大的修改或者新写的整个模块,要由主程进行过代码检查后再提交 周末下班前一小时完成代码提交
svn相对vss的优势 这里指针对程序开发人员 File-locking模式的缺陷 MS的建议小团队/个人使用迁移到Team Foundation Server
VCS原则 代码所有权共享 尊重团队其他成员 为其他成员着想