版本控制

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

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

难于恢复至之前正确版本 容易引起BUG服务器

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

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

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

 

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

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

SVN基本交互流程图google

 

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

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

相关文章
相关标签/搜索