#一、 源代码管理工具简介
* 有必要给大家的介绍一下,如果不说的话,大家都不知道它是干嘛的,首先我们要逐渐的建立器一个感受,对源代码管理工具的一个感觉。

* 为什么会出现源代码管理工具?

    * 首先它得有一定的功能,对不对?任何的发明创造,都是为了解决人类的问题的,对不对?甚至一些语法规则的发明也是为了解决一定的问题的,对不对?

    * 我随便举个例子啊,举个简单的例子同学们理解一下,比如说像以前我们为了存储一个整形数据,是不是发明了一个叫int 类型的。后来发现不太靠谱,因为他只能存一个整数,所以就发明了个数组[]用来存放多个整数。后来又发现数组里面的数据没办法描述所有的类型。比如说我想描述对象里面的属性,比如说我们以前存储10个学生的成绩,可能10个人的成绩一个一个的放进去,但是并没有办法区分每一个人对应的学号、姓名、成绩等信息,后面又发明了结构体struct
    * 再后来发现结构体也有局限性,因为它只能保存一些属性,但是我们没办法操作这些数据,所以后面就发明了我们的类,在struct的基础上又增加了我们非常牛逼的方法。那么类是不是就可以帮我们解决面向对象的问题了?每个学生的数据是不是都可以解决了
    * 同学们有没有发现一个原理,任何语法规则的发明创造都是为了解决人类的问题的,对不对?这个是有迹可循的,不可能说我凭空创造一个东西,不为了实现任何东西,对不对?
    * 再举个例子,枚举:平常我们是不是传个123数字来进行操作的,但是并不知到这个数字表示什么,对不对?这么做也没有问题,但是别人看你的代码的时,并不知道你想表达什么意思,但是如果我们枚举的话,是不是立刻就能明白这行代码向表达的功能,对不对?能理解吗?同学们

    * 为了解决在软件开发过程中,由源代码引发的各种蛋疼、繁琐的问题。

* 源代码会产生哪些问题呢?
    * 无法后悔:做错了一个操作后,没有后悔药可以吃。

        * 如果发现了写错了,撤销或删除也可以,但是如果程序中增加了一个功能可能有100行代码,然后在程序的其他地方进行调用,那这个时候我们就不好找了。
        * command + z有个局限性,关闭再打开就没法了。
        * 或者备份也可以,写错了,删掉,但是这时候也有问题,每次写一个功能都备份一份,每次写一个都备份一份。这样可能不清楚每一个文件增加了什么功能。
        * 备注功能也行,但是还是有问题:
            * 比较麻烦
            * 文件展示比较乱。而且在实际开发中没办法每次都备份一份。
        * 正常情况下,每写一个功能就备份一份,这样容易忘掉。
    * 版本备份:费空间费时间。
    * 版本混乱:因版本备份过多造成混乱,难于找回正确的想要的版本。
    * 代码冲突:多人操作同一个文件(团队开发中的常见问题)各自开发的功能要整合到一起。
    * 权限控制:无法对源代码进行精确的权限控制。
    * 追究责任:出现了严重的bug,无法得知是谁干的,容易耍赖。

* 源代码管理工具比较牛逼,它可以判断每一行代码里面每一个字符是谁写的。

* 源代码管理工具的作用:
    * 能追踪一个项目从诞生一直到定案的过程。
    * 记录一个项目的所有内容变化
    * 方便地查阅特定版本的修订情况

* 如果是团队开发,使用源代码管理工具是强制性的!
* 如果是单人开发,也强烈建议现在就开始使用源代码管理工具

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

* CVS:
    * 开启版本控制之门
    * 1990年诞生,"远古时代"的主流源代码管理工具

* SVN
    * 全称是Subversion:集中式版本控制之王者
    * CVS的接班人,速度比SVN快,功能比CVS多且强大。
    * 在国内软件企业中使用最为普遍。

* GIT
    * 一款伟大的分布式源码代理管理工具
    * 目前被越来越多的开源项目工具使用
    * 不过在国内企业尚未大范围普及

#二、SVN操作简介:
    * 基本操作:
        checkout:只需要做一次
        update:更新代码
        commit:提交修改的代码
    * 服务端搭建

    * 客户端

    * Xcode的集成【对SVN的集成不是很好,但是对GIT的集成是非常好的】

* 使用环境:
    * 要想利用SVN管理源代码,必须得有2套环境
    * 服务器:
        * 用于存储客户端上传的源代码
        * 可以在Windows上安装Visual SVN Server
        * 大部分情况下,公司的开发人员不必亲子搭建SVN服务器

    * 客户端:
        * 上传本地代码到服务器,或者跟新服务器的代码到本地,保持同步
        * 可以在Mac上使用命令行、VersionsCornerstone
        * 开发人员就属于客户端这个角色

    *

# 三、SVN的基本操作
* 安装服务器端
    * 双击进行安装,路径默认的就好,



# 四、解决冲突:
* out of date:过期,服务器的版本比



















posted on 2016-04-19 22:58  冰天雪地一雪纷飞  阅读(427)  评论(0编辑  收藏  举报