源代码管理工具

认识源代码管理工具

  • 出现源代码管理工具的原因

    为了解决软件开发过程中,由源代码引发的各种问题。

  • 源代码会引发哪些问题

  1. 不小心失误后,无法恢复
  2. 浪费时间以及空间。
  3. 因版本备份过多造成混乱,难以找回想要的版本
  4. 多人操作一个文件导致的代码冲突
  5. 无法对源代码进行精确的权限控制器。
  6. 出现严重BUG后无法得知是谁的操作引起的。
  • 源代码管理的工具的作用

  1. 追踪一个项目从诞生一直到定案的过程。
  2. 记录一个项目所有的内容变化。
  3. 方便查阅特定版本的修订情况。

综上,由于源代码管理工具使用简单,不会增加工作量,不会对现有工作造成任何损害(或坏的影响),因此成为了合格的软件开发人员必须掌握的技术。

常见的源代码管理工具

优缺点汇总和对比

源代码管理工具 优点 缺点
SVN(Subversion)

管理方便,逻辑明确,符合一般人思维习惯;易于管理,集中式服务器更能保证安全性;代码一致性非常高。

占用存储容量大,关心所有的文件类型;如果不能连接到服务器上,基本上不可以工作;不适合开源开发

Git

对程序源代码进行差异化的版本管理,代码库占极少的空间。易于代码的分支化管理。

不支持中文,图形界面支持差,使用难度大。不易推广
ClearCase 功能完善,安全性好,可以支持复杂的管理

学习曲线和学习成本高,需要集成ClearQuest才能完成完整的配置管理功能

VSS 简单易学,使用费用较低;是微软产品可以得到稳定技术支持 基局域网,效率低,VSS自身安全性较差,只支持widows平台下

TFS(Team Foundation

Serve)

TFS适合大团队,不仅包含源代码管理,还支持Bug管理、文档管理、持续构建

价格,安装较复杂(但一旦安装,TFS非常易于使用)

TFS

TFS是一种为 Microsoft 产品提供源代码管理、数据收集、报告和项目跟踪,而为协作软件开发的项目。它不再只是面向开发人员或者是测试人员角色,而是要提供一个平台来有效协调和支持开发过程中各个角色,并使他们能够彼此紧密联系进行协作。 TFS可作为独立的软件,或 Visual Studio Team System (VSTS) 在服务器端后端平台。TFS是设计用于大规模团队,因而有两种拓扑结构供选择:双server和单server。

CVS & SVN

CVS

CVS是最早的开源、免费的集中式版本控制工具,但自身设计有问题,会造成提交文件不完整,版本库莫名其妙损坏的情况(开启版本控制之门1990年诞生,"远古时代"的主流源代码管理工具。

SVN

SVN是集中式版本控制之王者,是CVS的接班人,修正了CVS的一些稳定性问题,是目前用得最多的集中式版本库控制工具,速度比SVN快,功能比CVS多且强大。在国内软件企业中使用最为普遍。
要想利用SVN管理源代码,必须得有2套环境:
服务器:用于存储客户端上传的源代码,可以在Windows上安装Visual SVN Server,大部分情况下,公司的开发人员不必亲自搭建SVN服务器。
客户端:上传本地代码到服务器,或者跟新服务器的代码到本地,保持同步,可以在Mac上使用命令行、Versions、Cornerstone,开发人员就属于客户端这个角色

VSS

VSS主要致力于维护文件更改历史记录、审核跟踪日志以及对源代码文件进行灾难恢复。它在以下场合下最为有效:团队的规模较小,各个成员之间的地理距离比较近,通常在高度可靠的环境中通过高速、低延迟的局域网 (LAN) 工作,并且共享的开发资产不大可能超过 4 GB。Visual SourceSafe 是一种仅用于客户端的文件服务器应用程序,不需要服务器端处理或代码执行。
VSS虽然是微软公司的产品,但微软内部却很少使用它。微软内部使用一个名为SLM的版本控制系统,直至1999年。之后,微软内部改以使用修改自Perforce SourceDepot。
VSS提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能,同 Visual Basic、Visual C++、Visual FoxPro 等开发环境以及 Microsoft Office 应用程序集成在一起。

ClearCase

ClearCase有时候缩写为CC。
它是IBM Rational 出品的大型商用软件配置管理工具。其核心是版本控制。尽管能够听到对ClearCase的很多抱怨,比如昂贵、复杂、不好用(安装比Windows还大运行比蜗牛还慢),但它仍然是收费的版本控制系统中市场份额最大的。
学习ClearCase可能要学习一下它的一些术语,可能需要从创建一个VOB开始,VOB:versioned object database,这个就是类似其他版本管理工具中称为仓库的东西,但是又一些微妙的差别。学习ClearCase需要从很多类似的术语开始理解它的做法。
它有两个版本:Base ClearCase和ClearCase UCM(Unified Change Management)。

Base ClearCase

提供文件、目录、版本、标签、分支、触发器和链接等“裸露”的环境,在此基础上,可以比较自由的进行设置和二次开发,以满足实际项目的需要,它的优点是灵活。

ClearCase UCM

开箱即用(Out of the box),提供了基于Base ClearCase的一套封装,只要做一些简单的设置,就可以在实际项目中直接使用了,它的一些性能指标也比Base ClearCase优异。

git

git是一款开源的分布式版本控制工具,在世界上所有的分布式版本控制工具中,git是最快、最简单、最流行的,在国外已经非常普及,国内并未普及(在慢慢普及),越来越多的开源项目已经转移到git
git的起源作者是Linux之父:Linus Benedict Torvalds,当初开发git仅仅是为了辅助Linux内核的开发(管理源代码)。

团队选择

由于团队项目是基于unity3D的,且在win10环境下,开发的脚本语言为C#,由于unity3D会附带VS,也可以自定义到VS Code中,所以选择GitHub+VS的模式。

配置环境

首先先下载vs github插件。

 

 下载完成后,需要关闭所有vs2019窗口,之后会弹出如下的窗口,点击modfiy,完成之后,重新打开vs即可。

 

 我们是在团队资源管理器里进行连接和管理的,然后在vs里登录github。

 

 

 

创建

连接成功后,我们进行创建。

 

 创建成功之后,github网站上就可以看到项目,然后在团队资源管理器,找到项目,然后在解决方案项中,新建项目。

 

分支

分支通常是在团队合作开发时才会使用的。一个项目的master分支通常由项目经理创建,组长有将其他分支合并到master的权限。用于开发的分支通常是develop分支,而我要实现某项功能时,是从master/develop分支拉取项目,自己用于开发的分支以-feature为后缀,开发完毕后请求合并(merge request),由组长审核代码,审核通过后再合并到master分支。对于单人开发来说,不必拉取各种分支,也不必考虑合并时的冲突问题。

更改

在团队资源管理器,选择更改。


填写说明,然后全部提交,提交之后,还要再同步里,选择推送,然后刷新github网站已经可以看到提交的代码文件。

小结

系统地对源代码管理工具进行了初步的了解和认识,对大概的应用(适合的团队模式或项目模式)和名字进行了了解,这次将本机的GitHub+VS的环境完成了配置,虽然和大型团队的开发仍有很大差别,但是为日后的学习和应用打下了基础。

posted @ 2021-05-25 15:18  Tir4miSu  阅读(236)  评论(0)    收藏  举报