
一、什么是版本控制管理
版本控制之于程序员,就好比安全网之于高空秋千表演者。知道安全网就在那里,万一自己摔落它能够提供保护,高空秋千表演者才能放心大胆地在空中飞跃。同样,版本控制使您有能力去冒以往想都不敢想的风险。如果哪儿出了错,您总是可以使自己的代码回复到一个已知的、工作正常的版本。您可以在不触及主干的分支中进行试验,而不会影响到其他小组成员。在已经发布的产品的较老版本中发现 bug 时,您可以轻松检出特定版本,以确认、修订,并生成该 bug 的修补程序。如果没有版本控制,您必须极为慎之又慎,缓慢地推进,总而言之,生产力会更低。
Subversion 是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。此外,它支持非 ASCII 文本和二进制数据,所有这一切都使 Subversion 不仅对传统的编程任务非常有用,同时也适于 Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域。
二、Subversion的基本概念
版本库:Subversion是一种集中的分享信息的系统,它的核心是版本库,它储存所有的数据,版本库按照文件树形式储存数据—包括文件和目录。任意数量的客户端可以连接到版本库,读写这些文件。通过写,别人可以看到这些信息,通过读数据,可以看到别人的修改。
实际上,版本库是另一种文件服务器,而不是你常见的那一种。最特别的是Subversion会记录每一次的更改,不仅针对文件也包括目录本身,包括增加、删除和重新组织文件和目录。 当一个客户端从版本库读取数据时,通常只会看到最新的版本,但是客户端也可以去看以前的任何一个版本。举个例子,一个客户端可以发出这样的历史问题“上个星期四的目录是怎样的?”或是“谁最后一个更改了这个文件,更改了什么?”,这些是每一种版本控制系统的核心问题:系统是设计来记录和跟踪每一次改动的。
三、快速入门:Windows下搭建SVN服务器
1.下载subversion
选择svn-win32-1.6.6.zip,我喜欢解压就能用的版本
http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=11151&expandFolder=11151&folderID=91
2.设置环境变量
解压svn-win32-1.6.6.zip,如D:\\svn\\svn-win32-1.6.6,设置SVN_HOME,加入PATH,%SVN_HOME%\\bin,添加SVN_EDITOR变量为notepad.exe
3.创建仓库
先创建一个目录如:D:\\svn\\svn_repository,使用命令添加该仓库:
命令如下
1.svnadmin create D:\\svn\\svn_repository
svnadmin create D:\\svn\\svn_repository
该命令会在D:\\svn\\svn_repository生成一些目录和配置文件
4.修改访问权限
打开仓库目录下的conf\\svnserve.conf文件在[general]下添加:
命令如下
1.auth-access = write
2.password-db = passwd
auth-access = write
password-db = passwd
如果允许匿名用户访问,那就添加
命令如下
1.anon-access = read
anon-access = read
5.添加用户
打开仓库目录下的conf\\passwd文件在[users]下添加一个用户如:username,密码:password:
命令如下
1.username = password
username = password
6.启动SVN
命令如下
1.svnserve --daemon --root D:\\svn\\svn_repository
svnserve --daemon --root D:\\svn\\svn_repository
7.创建一个目录,提交内容
方法一:
使用客户端TortoiseSVN登录,地址是:svn://localhost,如果不是在本机登录就要:svn://ip,右键svn://localhost创建一个目录如:test,会要求输入用户名和密码,username:password
方法二:
先用客户端把svn://localhost,checkout到一个目录下,然后再在那个目录添加文件或文件夹test,然后直接提交就行了
方法三:
使用命令提交本地内部,打开命令控制台,去到想要提交内容的目录如:D:\\project\\myproject,然后使用命令提交:
命令如下
1.svn import svn://localhost/test
svn import svn://localhost/test
8.使用流程
开发人员使用svn进行开发的一般流程是:
——>从SVN服务器上检出项目——> checkout
——> 更新文件或目录 ——> update
——> 修改文件或目录 —— commit(提交)变更
——> 增加文件或目录 ——> add(增加) 文件或目录——> commit(提交)
——> 删除文件或目录 ——> commit(提交)上一级目录
但要注意,当需要向服务器提交时,必须先更新再提交,以防版本冲突。
