• 版本控制


    如果不使用版本控制还会出现什么问题?

    备份多个版本,费空间,费时间

    难于恢复至以前正确版本 容易引发BUG

    解决代码冲突困难 代码管理混乱

    难于追溯问题代码的修改人和修改时间

    无法进行权限控制 项目版本发布困难

    版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程。是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统。

    Svn(Subversion)是近年来崛起的版本管理工具,在当前的开源项目里(J2EE),几乎95%以上的项目都用到了 SVN。Subversion 项目的初衷是为了替换当年开源社区最为流行的版本控制软件CVS,在CVS的功能的基础上有很多的提升同时也能较好的解决CVS系统的一些不足。

    SVN基本交互流程图

    SVN 工作的的基本思路:在一台服务器上建立一个仓库,仓库里可以存放许多不同项目的源程序。由仓库管理员统一管理这些源程序.这样,就好象只有一个人在 修改文件一样.避免了冲突.每个用户在使用仓库之前,首先要把仓库里的项目文件下载到本地。用户做的任何修改首先都是在本地进行,然后用 SVN 命令进行提交,由 SVN仓库管理员统一 修改.这样就可以做到跟踪文件变化,冲突控制等等。 

    Subversion建立仓库

    建立svn仓库

    • 命令svnadmin create 仓库名称

    仓库目录说明

    • db目录:就是所有版本控制的数据存放文件。
    • hooks目录:脚本文件的目录。
    • locks目录:用放置hook来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端。

    • format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
    • conf目录:是这个仓库的配置文件(仓库的用户访问帐号、权限等)。

    注意事项

    .svn 这个隐藏目录记录着两项关键的信息: 工作文件的基准版本和一个本地副本最后更新的时间戳。千万不要手工修改或删除这个 .svn 隐藏目录和里面的文件!!! 否则将会导致你本地的工作拷贝 (静态视图)被破坏,无法再进行操作。

    VisualSVN Server

    下载地址: http://www.visualsvn.com/server/download/

    当前使用的版本: VisualSVN-Server-2.7.3

    TortoiseSvn

    TortoiseSVN是Subversion版本控制系统的一个免费开源客户端,不需要为使用它而付费。它是 Subversion 的 Windows 扩展。可以使你避免接触 Subversion 枯燥而且不方便的 Command Line。它完全嵌入 Windows Explorer,使用时只需在正常的窗口里右键操作就可以了。

    下载安装 http://tortoisesvn.net/downloads

    SVN与Eclipse整合

    1. 下载SVN插件(http://subclipse.tigris.org)

    2. 我们使用版本eclipse_svn_site-1.6.5.zip
    3. 解压到一个文件夹中

    4. 进入 eclipse 安装目录中 dropins 目录并创建一个 subclipse.link 的文本文件(文件名任意)。内容为:path=eclipse_svn_site-1.6.5.zip解压路径(注意:路径中需要把‘’替换成‘/’)

    Subversion目录规范

     创建三个顶级目录

    • /trunk 存放开发的“主线”

    • /branches 存放支线副本

    • /tags 存放标签副本

    Subversion 提供了主线、分支管理技术,使得在软件开发中可以更方便、灵活的对项目的进度、版本的发布、版本的维护、软件功能的拓展与定制进行管理。 主线(trunk):一个项目建立时就存在,并伴随着项目的成长而不断的成长,直到项目完全结束。 分支(branch):一般是指功能分支,例如:我们的某个项目要添加一个模块,但这个模块又比较复杂,实现难度比较大。为了不影响主线的稳定,我们就可以创建一个功能分支来专门开发这个模块,当这个模块开发完成以后,并通过测试部门的各项测试,再合并到主线中去。再比如,我们的交警 GPS 项目已经开发完成了,但是这个项目是给泉州交警做的,现在我们又接到了一个交警项目,不过是要给厦门交警大队的。现在厦门交警大队要求我们给他们定制一些功能。我们又不想再主线上进行修改,这个时候,我们也可以创建一个分支,并在这个分支上开发,这时是不会对主线造成影响的。等给厦门开发完成了以后,我们发现,他们要求的有些功能其实很好,以后别的地方可能也需要同样的功能。这个时候我们就可以根据我们的需要,将有用的模块有选择的合并到主线中来。 标签(tag):标签和分支一样,也是一个目录,不过这个目录中一般存放的是发布的信息(当然我们也可以只用分支,但是用标签更清楚明了一些)。还是拿我们的交警项目来举个例子:我们的交警项目开发完成了以后,要拿给泉州交警大队用了,也就是要发布(release),假设这个版本叫做1.0.2。这个时候,我们就要创建一个标签,当泉州交警大队用了三个月,发现了一个 BUG,我们只需要签出这个标签中的代码(它和我们刚提供给泉州交警大队时候的是一模一样的),进行调试,并修正这个 BUG。然后再发布一个版本,假设叫做1.1.0,这个时候我们就在创建一个 1.1.0的标签…… 要注意,标签目录里面的代码,要进行严格的控制,除了修正 BUG 外,不能做任何其他的事情。

    Git 简介

    Linus的第二个伟大作品。2005年由于BitKeeper软件公司对Linux社区停止了免费使用权。Linus迫不得己自己开发了一个分布式版本控制工具,从而Git诞生了。 目前使用Git作为版本控制的开源软件:Linux kernel,Android, jQuery, Ruby on Rails,Debian… Eclipse上使用Git的项目数量也已经超过了使用SVN的仓库数。

    为什么选用GIT?

    • 分布式,强调个体

    • 公共服务器压力和数据量都不会太大

    • 速度快、灵活
    • 任意两个开发者之间可以很容易的解决冲突

    • 离线工作

    • 每日工作备份

    • 可以吃后悔药

    GIT基本交互流程图

    开源项目工作流程图

    Git安装

    Git软件下载安装 https://code.google.com/p/msysgit/downloads/list 我们使用版本Git-1.7.9版本

    Git建立仓库

    建立Git仓库

    • git init --bare 库名称

    仓库目录说明

    • hooks目录:脚本文件的目录。

    • info目录:保存了不希望在 .gitignore 文件中管理的忽略模式的全局可执行文件

    • logs目录:日志目录
    • objects目录:存储所有数据内容

    • refs目录:存储指向数据(分支)的提交对象的指针

    • config文件包含了项目特有的配置选项

    • description文件仅供 GitWeb 程序使用

    • HEAD文件指向当前分支

    TortoiseGit

    下载安装 https://code.google.com/p/tortoisegit/wiki/Download我们目前使用的版本: TortoiseGit-1.7.7.0

    Git与Eclipse整合

    1. 下载EGit插件(http://www.eclipse.org/egit/)

    2. 下载到的插件为压缩包,可以直接在Eclipse中安装: Eclipse -> Help -> Install new Software

  • 相关阅读:
    windwos8.1英文版安装SQL2008 R2中断停止的解决方案
    indwows8.1 英文版64位安装数据库时出现The ENU localization is not supported by this SQL Server media
    Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds
    SQL数据附加问题
    eclipse,myeclipse中集合svn的方法
    JAVA SSH 框架介绍
    SSH框架-相关知识点
    SuperMapRealSpace Heading Tilt Roll的理解
    SuperMap iserver manage不能访问本地目的(IE9)
    Myeclipse中js文件中的乱码处理
  • 原文地址:https://www.cnblogs.com/cherryhimi/p/4086337.html
Copyright © 2020-2023  润新知