SVN安装文档

  • 格式:doc
  • 大小:276.00 KB
  • 文档页数:6

SVN服务器与客户端安装文档一、SVN介绍1、SVN是一种版本管理系统,前身是CVS,是开源软件的基石。

即使在沟通充分的情况下,多人维护同一份源代码的一定也会出现混乱的情况,版本管理系统就是为了解决这些问题。

2、SVN中的一些概念a. repository(源代码库)源代码统一存放的地方b. Checkout(提取)当你手上没有源代码的时候,你需要从repository checkout一份右键->SVNCheckout...版本路径可以选择某个版本库的路径,或者直接输入svn://url直接导入所有最新版本库点击Revision,可以选择版本号选择下载成功后,文件夹改变图标注:checkout会形成工作拷贝,里面有最后的版本等信息,该拷贝处于受控状态,Export(导出)出来的,只是把文件导出来,不带版本信息,不受控;c. Commit(提交)当你已经修改了代码,你就需要Commit到repository右键->SVN Commit...提交修改过的文件或者文件夹。

注:更改公共修改文件,可以先选择Check for Modifications检查版本仓库文件并且显示出你的工作副本中修改过的每一个文件,没有在版本控制下的文件也会被显示出来,确认副本是最新的并且没有冲突(图标为的文件)之后再提交。

d. Update (更新)当你已经Checkout了一份源代码, Update一下你就可以和Repository上的源代码同步,你手上的代码就会有最新的变更;e.比较(Diff)合并(Merge)Diff用比较查看器,它对本地的文件和仓库中最新版本的内容进行详细的对比。

合并(Merge)的应用解决冲突Subversion和CVS等采用拷贝-修改-合并模型。

此模型解决了锁定-修改-解锁模型引起的管理、安全、修改串行的问题。

项目成员从版本库读取个人的工作副本,所有项目成员并行地在工作副本上工作,然后合并在一起形成新的版本。

如果修改不重叠,TortoiseSVN可自动合并。

修改重叠则引起冲突。

冲突区域部分被“<<<<<<<”标注,通过沟通修改,合并文件,重新提交。

分支(branch)版本控制的一个重要特性是能将变更隔离成独立的开发线路。

分支常用来测试新功能,但又不会因为编译错误或BUG干扰开发主线。

一旦分支稳定下来,就可以把分支合并(merge)回主线(the trunk)。

日常开发过程其实就是这样的(假设你已经Checkout并且已经工作了几天):Update(获得最新的代码) –>作出自己的修改并调试成功–> Commit(大家就可以看到你的修改了) 如果两个程序员同时修改了同一个文件呢?SVN可以Merge这两个程序员的改动,合并,实际上SVN管理源代码是以行为单位的,就是说两个程序员只要不是修改了同一行程序,SVN都会自动合并两种修改。

如果是同一行呢,SVN会提示文件Confict, 冲突,需要手动确认。

二、SVN客户端安装1、下载SVN客户端安装程序,假定我们把程序安装在C:\SVN\;2、设置PATH,在PATH中添加路径C:\SVN\BIN\ (如何设置PATH在我的电脑上点击右键,选择属性,打开系统属性对话框。

选择高级属性页,点击“环境变量”按钮,在用户变量中添加或修改PATH的值) ;三、SVN服务端安装1、下载SVN服务器程序SubVersion (SVNService.exe(非必要)这个是将你的SVN服务端程序注册成Windows系统服务的,当你系统启动时,该SVN服务器会自动启动并后台运行,不注册成服务的话,就要自已手动打开了。

),下载好之后就进行安装,如果是下载的ZIP包,就解压到自定的目录就可以使用了;2、在C盘新建文件夹SNVHOME,打开CMD命令行模式,进入到SubVersion 目录下的bin目录下(命令:CD C:\Program Files\Subversion\bin 回车),输入以下命令svnadmin create C:\SVNHOME\Repository(路径可以自定),运行命令以后可以看到在SVNHOME文件夹中建立了一个Repository的目录,在该目录里生成了几个文件夹和几个文件;3、配置项目的用户及密码等信息,以记事本方式打开Repository/conf/文件夹下的svnserve.conf文件,将# anon-access = read# auth-access = write# password-db = passwd# realm = My First Repository这几句命令的注释符号和前面的空格去掉变成如下:anon-access = readauth-access = writepassword-db = passwdrealm = My First Repository然后再以记事本打开password文件,在【user】下面添加用户名和密码,比如我要添加一个用户名为wangkai,密码为123456的用户,写法为:Wangkai = 123456,保存之后就可以运行SVN服务器程序了。

在CMD命令行下进入到SubVersion目录下的bin目录下,输入如下命令:svnserve –i -r C:\SVNHOME 出现success后输入以下命令svnserve -d -r C:\SVNHOME这样服务器就启动了,她会一直侦听,所以不能关闭窗口,像Tomcat一样一直挂着就行,如果你觉得这样麻烦,就可以用SVNService.exe这个工具来注册成系统后台服务运行。

下载SVNServer.exe并将她拷到C:\Program Files\Su bversion\bin目录下,然后CMD进入C:\Program Files\Subversion\bin下使用如下命令SVNService -install -d –r C:\SVNHOME;4、安装完成之后,在cmd命令行下,测试svn的3690端口是否打开:tel net localhost 3690,如果能打开,则安装成功。

如果遇到问题:SVN的错误:Error: Can't connect to host : 由于目标机器积极拒绝,无法连接。

解决办法是:安装完TSVN之后,在subversion的安装路径下,找到bin文件夹,需要完成下面几步操作:在下面新建一个setupservice.bat文件,内容是sc create svnservebinpath="C:\ProgramFiles\Subversion\bin\svnserve.exe --service -r d:\svnhome" depend= Tcpip start= autosc start svnservepause保存并运行;(命令中文件路径为自己电脑中文件的实际路径)注:服务安装完毕后应在计算机服务管理中找到svnserve服务,设置为自动,并启动此服务。

在郭林的电脑里安装的时候遇到一个问题,在系统里启动s vnserve服务时,系统会提示服务以启动,但因为没事可做又自动停止,不知道为什么?4、现在项目的地址是: SVN://localhost/svnhome/Repository, 右键->To rtoiseSVN->Import...,在URL of repository输入即可,如果是内网就用SVN: //内网IP,外网用 SVN://外网IP。

如:svn://172.18.72.1215、在客户端安装eclipse的svn插件,安装好后几乎无需任何配置,在线安装方式的url是/update;6、在客户端,首先确保服务打开,打开视图,window -> show view -> other -> svn -> svn资源库右键单击,新建->资源库位置-> svn://localhost/project1,出现一个资源库,右键单击,取出为->作为新项目取出,并用向导配置。

选yesjava->java项目,next->finish.7、在客户端,在eclipse的左边视图项目根目录下加文件夹,加文件,然后,在eclipse的左边视图的文件夹或根路径下提交,更新。

(右键单击)所有的操作都在eclipse的界面内完成,工作效率极高。

比TortoiseSVN方便,注意eclipse的配置文件不要提交上去,就是建立eclipse项目时会自动建立在项目文件夹里的两三个文件。

因为是“作为新项目取出”。

四、简单使用1、首先在磁盘上新建一个文件夹,如在桌面上新建xieziban,在里面存放eclipse项目的源文件,只需要源文件就行,不需要程序编译时产生的其他文件;2、右键xieziban文件夹,TortoiseSVN 导入(import),弹出窗口:本地客户端输入:svn://localhost/\SVNHOME\Repository;如果是远程客户端,则输入svn://172.178.72.121\svnhome\Repository;在窗口中输入开始配置的用户名和密码即可,这样就将源文件导入了SVN的版本库,在版本库中可以对导入进去的文件进行一些操作;如下图:3、源文件导入SVN版本库后,通过eclipse对源文件的修改使源文件图标发生变化,这时采用提交、更新等操作,控制源文件的版本。

远程客户端连接方面还存在一点问题没有解决,具体操作待补上。

参考网站:/shengling_2005/archive/2009/08/22/4472202.aspx/hycizl@126/blog/static/936397602008112710220588/。