Linux下svn服务器搭建、配置及顾客端操作流程2012-04-17衡阳婷V1.01版本修改记录日期说明更改人版本号2012-04-17第一版资中婷V1.01Linux下svn服务器搭建、配置及顾客端操作流程Linux下SVN服务器搭建1.1Subversion(SVN)简介Subversion是一个自由,开源的版本控制系统。在Subversion管理下,文件和目录可以赶超时空。Subversion将文件储存在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的更改情况。这样就可以籍此将数据恢复到先前的版本,并可以查看数据的修改细节。正由于这般,许多人将版本控制系统当成一种神奇的“时间机器”。Subversion支持linux和windows,更多是安装在linux下。本文介绍的即为安装在Linux的Centos系统下。SVN服务器有2种运行方法:独立服务器和利用apache,本文采用SVN为独立服务器。SVN储存版本数据也有2种形式:BDB和FSFS。由于BDB形式在服务器中断时,有可能锁住数据,所以还是FSFS方法更安全一点。目前较新版本默认为FSFS储存方法。
Subversion的顾客端有两类,一类是websvn等基于web的,一种是以TortoiseSVN为代表的顾客端软件。后者须要web服务器的支持,前者须要用户在本地安装顾客端,两种都有免费开源软件供使用。本文介绍在本地Windows系统下安装TortoiseSVN顾客端软件方法。1.2Subversion安装下载Subversion安装包,在此采用rpm安装方法,因而须要下载.rpm安装文件。在此下载的SVN安装文件是subversion-1.6.17-1.rhel5.x86_64.rpm。安装步骤如下(均在Linux下操作):加载安装文件到某目录下命令:rz回车弹出图1所示对话框,选择加载文件,点击“添加”,再点击“确定”。加载安装文件加载成功以后目录中会出现该文件,如下所示。安装Subversion命令:rpm-ivhsubersion-1.6.17-1.rhe15.x86_64.rpm回车安装以后检测安装版本信息命令:svn--version1.3Subversion启动命令:svnserve安装时不指定安装路径的话,SVN服务存在/usr/bin目录下。SVN服务器配置2.1构建版本库1、在目录usr/local下新建一个名为svn的文件夹命令:mkdirsvn2、在svn文件夹下构建名为PVMOnitor的版本库命令:svnadmincreate/usr/local/svn/PVMOnitor若构建成功,打开PVMOnitor文件夹,其下手动生成几个文件,如图2所示。
版本库下手动生成的文件其中,conf文件夹为版本库配置文件夹,下边详尽介绍版本库的配置。2.2配置用户信息打开conf文件夹,下边包含三个文件,分别为svnserve.conf、passwd、authz。1、配置svnserve.conf打开svnserve.conf文件命令:vimsvnserve.conf更改为如下部份:[general]anon-accessnone#使非授权用户难以访问auth-accesswrite#使授权用户有写权限password-dbpasswd#指明密码文件路径,可以是绝对路径,也而且相对路径authz-dbauthz#访问控制文件,设定用户访问权限realmPVMOnitor#认证命名空间,subversion会在认证提示里显示,但是作为账簿缓存的关键字。其它采用默认配置。各句子都必须顶格写,两侧不能留空格,则会出错。指令简介:这是svn配置文件的格式,请根据以上格式书保存退出(命令:wq!),如图3所示。svnserve.conf配置情况2、配置passwdvimpasswd#打开passwd文件更改[users]部份,其中“=”左侧为用户名,两侧为该用户名的密码。
[users]sallyssecretxscxueshichaocbchenbolclinchongtjhleadertianqdtqidongting保存退出,配置完成如图4所示。passwd配置3、配置authz[groups]g_usertjh,xsc,cb,lc,qdt#将“=”右侧五位用户设定为g_user[PVMOnitor:/]#版本库PVMOnitor的权限设定@g_userrw#@表示组,g_user组所有成员拥有读写权限#除g_user内成员外其他人只有读权限配置完成后如图5所示。authz配置所有配置完成后,无需重新启动svn服务器,手动生效。顾客端操作本文介绍的SVN顾客端为Windows下TortoiseSVN顾客端。具体操作如下:3.1下载与SVN服务器版本对应的TortoiseSVN安装包,并安装本文安装包为TortoiseSVN-1.6.16.21511-win32-svn-1.6.17.msi,根据提示进行安装。安装成功后会提示重新启动计算机,重启与否均可。单击键盘右键,右键菜单发生变化,如图6所示。多了两个菜单:”SVNCheckout…”和”TortoiseSVN”。
这两个菜单用于后续用户操作版本库工具菜单。顾客端安装成功3.2在顾客端查看版本库树目录单击键盘右键,选择“TortoiseSVN”菜单,弹出其子菜单,选择“Repo-browser”,如图所示。打开版本库浏览器,首先会弹出SVN服务器的URL地址输入框,如图8所示,输入后点击“OK”,会弹出用户认证对话框,如所示。依据版本库配置文件,在此可以用tjh、xsc、cb、lc、qdt登陆。打开版本库浏览器步骤三输入正确的用户名和密码后点击“OK”完成,假如选择复选框“Saveauthentication”则保存用户名和密码,然后不再须要认证。点击“OK”后弹出SVN版本库浏览器,如图10所示。可以看见左栏显示早已构建好的版本树目录,右栏显示具体文件夹下的文件目录。图10版本库浏览器3.3导出源文件至版本库的步骤第一步:在版本库中新建一个文件夹,用于放置源文件。拟在Project目录下新建一个名为example目录,步骤如下:首先右键单击Project文件夹,弹出右键菜单,单击“Createfolder”菜单linux svn服务器删除版本库,如图11所示。弹出图12所示对话框linux定时关机命令,提示输入文件夹名称,输入“example”,单击“OK”。
图11创建文件夹图12输入文件夹名称弹出图13对话框,提示输入日志信息,在输入框内键入日志信息,单击“OK”linux svn服务器删除版本库,完成。重新打开版本库浏览器,在Project目录下,example文件夹早已存在,如图14所示,至此,文件夹构建完成。图13提示输入日志信息图14版本浏览器发生变化第二步:将本地源文件导出版本库的example文件夹下。本文拟将桌面的“css教程”文件夹下所有源文件导出到版本库的example文件夹下,步骤如下:首先,右键点击“css教程”文件夹,弹出图15所示的菜单,选择“TortoiseSVN”下的“Import…”,会弹出图16所示对话框。在“URLrepository”下选择版本库目录下的文件夹。按照预期,在此选择到example目录。在“Importmessage”下输入日志信息。单击“OK”,弹出图17所示对话框。加载完毕后,单击“OK”完图15Import步骤一图16Import步骤二图17Import步骤三在版本库浏览器中查看example文件夹下内容,如图18所示,已将桌面的“css教程”文件夹下的所有内容导出到版本库example中。
至此,将源文件导出版本库步骤介绍完毕。图18版本库浏览器目录3.4构建版本库副本之前的工作是将本地源文件导出至版本库中,并且为了用户协同编辑、修改版本库内文件,而不至于混乱,须要在本地构建版本库的拷贝。在拷贝文件内进行更改,然后将更改的版本再递交至版本库,这样保证版本库内文件不直接被操作,保障安全。构建拷贝的步骤如下:步骤一:新建一个文件夹,如命名为”css教程copy”,右键单击该文件夹,弹出图19所示菜单,单击“SVNCheckout…”菜单,弹出“Checkout”对话框,如图20所示。其中,“URLrepository:”是构建拷贝的版本库文件夹目录,本文拟为example文件构建版本库拷贝。”Checkoutdirectory”是拷贝储存文件夹,不需要改动,其他选择默认即可。点击“OK”,弹出图21所示的执行对话框,表示正在拷贝。图19Checkout步骤一图20Checkout步骤二图21Checkout步骤三拷贝完成后点击“OK”按钮,完成拷贝工作。此时“css教程copy”文件夹图标变为,打开查看内部文件,如图22所示,图标均发生变化。
图22Checkout后的文件夹变化3.5用户修改文件,并将其更新至版本库假定在“css教程copy”文件夹内添加一个新文件,如图23所示。此操作并不是通过svn命令执行的,因而现今不辨识该文件。右键单击该文件,弹出图24所示右键菜单,选择“TortoriseSVN”菜单下的“Add”菜单,该文件的图标恢复正常,如图25所示。图23向“css教程copy”文件夹内加入文件图24用SVN命令添加文件图25添加以后图标变化返回该文件的下层目录,即“css教程copy”文件夹,此时文件夹的图标变为,该图标表示文件夹有所改动,但是未将修改递交至版本库。此时,右键单击该文件夹,弹出图26所示菜单,选择”SVNCommit…”菜单,弹出图27所示对话框。该对话框下部提示输入日志信息,其他选项默认即可,点击“OK”。图26执行SVNCommit递交至版本库图27Commit对话框弹出执行Commit对话框,递交完成后,点击”OK”,修改文件并递交至版本库完成。查看版本库浏览器,example目录下成功添加了该文件,如图29图28Commit执行对话框图29版本库树目录备注:1、对所有文件的操作有两种:一种是对文件源代码进行编辑,此时,根据不同的操作系统方法进行操作,完成后将该文件递交至版本库。
另一种是对文件进行如添加(Add)、删除(Delete)、移动(Move)、复制(Copy)等操作。该类更改均应借助SVN操作命令。借助Windows/Linux操作方式进行的更改,SVN服务器并不辨识,因而,应当将SVN服务器单独看做,摒弃操作系统。2、对所有文件的更改必须递交至版本库,不递交则版本库内文件并不手动更新。3.6查看历史版本信息查看版本库所有的版本信息方式:在版本库浏览器(Repo-browser)中,右键右栏内空白处,弹出图30所示菜单。菜单第一项(Showlog)即是显示日志信息红旗linux安装,即显示版本信息。单击步入,弹出图31所示的信息对话框。图30文件操作菜单图31日志信息对话框第一个区域为版本信息列表,陈列所有版本信息,包括版本号、执行的操作类型、操作者、日期、日志。第二个区域为对应版本的日志信息。第三个区域为对应版本所做的具体操作。3.7checkout历史版本图31第一个区域内的每位版本都对应图32所示的菜单栏,可进行多项操作。方式:选择某条版本记录,右键单击弹出菜单。图32对版本操作菜单在此,可以导入历史版本,在弹出的菜单中选择“Checkout…”,弹出Checkout对话框,如图33所示。
在“Checkoutdirectory”中输入储存历史拷贝的文件夹目录,在”Reversion”栏中选择历史版本号,点击“OK”即可完成历史版本文件的拷图33Checkout对话框3.8用户的其他操作指令1、SVNUpdate(SVN更新)假如配置库在本地已有工作拷贝,则取得最新版本只是执行SVNUpdate可,点击SVNUpdate,系统弹出更新提示框,点击确定,则把服务器是最新版本更新出来2、Add(加入)若果有多个文件及文件夹要递交到服务器,我们可以先把这种要递交的文件加入到递交列表中,要执行递交操作,一次性把所有文件递交,如图,可以选择要递交的文件,之后点击执行递交(SVNCommit),即可把所有文件一次性递交到服务器上3、ResolvingConflicts(解决冲突)有时你从档案库更新文件会有冲突。冲突形成于二人都更改文件的某一部份。解决冲突只能靠人而不是机器。当形成冲突时,你应当打开冲突的文件,查找以