源代码管理工具(6)——源代码管理概念

1、代码库(Database(VSS中的说法)、repository(TFS、CVS、SVN中的说法)):代码统一放在这里进行管理。可以想象成保存代码的数据库。

2、本地(local)版本:要对代码进行修改的时候先要把代码下载( checkout(签出)(动作一:下载最新代码;动作2:我要开始改了,先别让别人改) 、get :只是下载,没有CheckOut)到自己的计算机中,修改的是本地的版本,修改完毕需要把代码签入(CheckIn)到代码库中(动作一:上传本地最新代码,标记别人就可以修改了)。

3、版本号:每个文件都有一个版本号,随着文件的修改、签入,版本号会递增,我们可以回退到任意一个历史版本,这样一旦发现今天的代码改错了,就可以回退(RollBack)到昨天的版本了,也可以单独下载get某天的版本。服务器默认是记着所有的版本。

4、锁定(Lock):代码锁定以后,别人就不能签出(CheckOut,下载并且修改)了,直到解锁(Unlock)。CheckIn CheckOut时自动完成。

5、签出(Checkout):get只是将代码库上的文件下载到本地,而CheckOut则不仅是下载,还将代码库上的文件标记为“已签出”。如果是已签出且锁定的话,其他人不能再CheckOut,可以get,只有我CheckIn(自动解锁)以后别人才能CheckOut。这样可以有效防止并发修改的问题。同时只能有一个人改

6、冲突(conflict):如果不锁定代码(没有连接服务器进行修改),多个人可以同时修改一个文件,假设A、B两个人CheckOut一个1.0版本的代码,然后各自修改,A先CheckIn,这时候代码库的代码就变成了1.1版本,B再CheckIn的时候发现代码库上的代码已经不是当时CheckOut的1.0版了,这时候就发现发生了版本冲突的并发修改问题。解决冲突有两种方法:替换(Replace)、合并(Merge)

7、替换:将代码库上的新版本覆盖本地的版本或者将本地的版本覆盖代码库上的版本。最暴力!

8、合并:分析冲突的部分,保留代码库上版本,同时将冲突的部分根据特点提取出变化的增量,根据增量来修改代码库上的版本形成新版本。合并分为自动合并和手工合并两种。文件中有C1、C2两个函数,A修改了C1函数、B修改了C2函数,然后就可以分析然后将两个人的修改都合并到新文件中。自动、手工合并。

9、如何避免冲突?冲突大大降低开发效率。如下几个方法:

(1)CheckOut后锁定,禁止别人修改。

(2)每个人编辑不同的文件。

(3)每个人编辑不同的项目。

 

10、分工的时候,尽量避免两个人修改同一个文件。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值