20180320作业1:源代码管理工具调查
一、找出并了解当前较为流行的几种源代码管理工具(至少三种);
二、建立表格对这些源代码管理工具的优缺点进行比较分析。
源代码管理工具 |
优点 |
缺点 |
GitHub |
免费且开源。 用于敏捷高效地处理任何或小或大的项目。 Git支持分支功能(branch)。 Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。 Git 中的每个工作树都包含一个具有完整项目历史的仓库。 简易的初始化。对于随便写两行代码就要放到代码管理工具里的人来说,再合适不过。 |
学习成本大。由浅入深的过度很漫长,需要大量时间的投入。 Git版本库需要频繁的手动维护。 |
SVN |
对目录的组织的管理更加方便。SVN不光对文件做版本跟踪,也会对目录做版本跟踪。 保证提交操作的完整性。SVN对提交操作的处理方式类似数据库的事务处理,要么全部成功,要么全部无效,保证了原子性。 SVN允许一个文件有任意多的可命名属性,功能十分完全。 |
不能离线工作。所有的版本信息都放在服务器上。提交、更新、浏览历史的速度慢。耗费CPU资源。 代码不能及时提交。强迫使用者即时处理冲突,然后才能提交。 不能恢复到历史版本。 需手动“cleanup”。很多评论回复这点让他们抓狂。 |
Mercurial(hg) |
学习门槛较低。整体上看,hg需要掌握的命令要比git少很多。 可以一键完全恢复到历史版本的某一个切面。 封装好。相比git,hg很少暴露一些实现内的细节。 照顾 svn 的迁移用户。 hg 的 pull 更多的时候可以让你避免创建分支。 hg的版本库不需要维护。 |
分支管理不灵活。Mercurial的branch管理和Git相比不是很方便。大型团队不愿使用 |
Microsoft TFS |
任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用集成了项目管理、版本控制、BUG 跟踪。 能有效实现 SCRUM能与 VS 无缝接合。 |
搭建、维护tfs比较复杂,硬件要求也比较高。 整个系统是用 asp 实现的,用浏览器访问相当慢。 |