知方号

知方号

SVN详细配置与使用

转自:https://blog.csdn.net/jerehedu/article/details/45192091

    项目管理在项目开发活动中起到非常重要的作用,而对于初学者来说学习有一定的难度,且不说如何使用,就是搭建过程恐怕也要费一般周折,介于此下面就通过图解的方式一步一步详细的教大家如何使用SVN,你只要耐心的一步步去实践就能掌握

目录:

一、SVN介绍

二、SVN服务器安装

三、SVN客户端安装

四、SVN服务配置

五、SVN客户使用

六、Eclipse SVN客户端插件安装

一、SVN介绍

SVN是个自由、开源的版本控制系统,绝大多数开源软件都使用SVN作为代码版本管理软件。

SVN的官方网站http://subversion.apache.org/。目前SVN在开源社区中非常流行的一款版本控制软件,它是CVS的替代产物。

二、SVN服务器安装

1、下载CollabNetSubversion-server-1.5.6-2.win32

2、执行安装程序CollabNetSubversion-server-1.5.6-2.win32 ---------SVN服务器软件

安装完成后,右键菜单出现”SNV Checkout”(可将服务器中的项目签出到本地),如图所示

 

三、SVN客户端安装

1、 下载TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi

2、 执行TortoiseSVN-1.5.9.15518-win32-svn-1.5.6.msi---------SVN客户端软件

执行LanguagePack_1.5.9.15518-win32-zh_CN.msi------------SVN客户端软件汉化包(可选)安装完成后,右键菜单出现”TortoiseSVN”,如上图所示

四、SVN服务配置 方案1:使用命令和手动修改配置文件

如果感觉麻烦,可跳过后面的使用方案2

1、 执行创建目录  svnadmin create c: Repositories

2、 打开conf目录下的authz文件

添加组及其用户accp=user01,user02

为组用户设置目录的读写权限,组前面要用@符,第一个[/]表示目录,[/]@accp=rw

3、 编辑passwd文件

格式:用户名=密码

user01=1234

user02=1234

4、打开svnserverconf

取消以下几个注释

password-db = passwd

authz-db = authz

5、 开机自动启动SVN

sc create MySVNServer binpath= ""C:ProgramFilesSubversionsvnservesvnservesvnserve.exe" --service  -r c: Repositories" displayname= "SVNService" depend= Tcpip start= auto

注意之处

(1)sc是windows自带的服务配置程序,MySVNServer 是服务的名称,没什么用。

 

(2)参数binPath表示svnserve可执行文件的安装路径,由于路径中的"Program Files"带有空格,因此整个路径需要用双引号引起来。而双引号本身是个特殊字符,需要进行转移,因此在路径前后的两个双引号都需要写成" 。

 

(3)--service参数表示以windows服务的形式运行,--r指明svn repository的位置,service参数与r参数都作为binPath的一部分,因此与svnserve.exe的路径一起被包含在一对双引号当中,而这对双引号不需要进行转义。

 

(4)displayname表示在windows服务列表中显示的名字, depend =Tcpip 表示svnserve服务的运行需要tcpip服务,start=auto表示开机后自动运行。安装服务后,svnserve要等下次开机时才会自动运行。

 

(5)binPath的等号前面无空格,等号后面有空格 displayname depend start也都一样。 service前面是--,不是- ,而r前面是-

 

(6)若要卸载svn服务,则执行 sc delete svnserve 即可。

 

(7)从“sc”到“auto”是在同一个命令sc,必须写在同一行。

6、启动服务:

C:>net start svnservice

SVNService 服务正在启动 .

SVNService 服务已经启动成功。

停止服务:

C:>net stop svnservice

SVNService 服务正在停止.

SVNService 服务已成功停止。

删除创建的服务

C:>sc delete svn svnservice

方案2:使用可视化工具

方案1的确比较麻烦,我们可以使用VisualSVN-Server-1.6.3.msi----------SVN服务配置可视化工具

1、下载

2、执行VisualSVN-Server-1.6.3.msi安装程序

3、VisualSVN-Server的使用

(1)创建版本库

主键面,表明SVN服务已运行,

 

Repositories表示版本库是svn文件共享的核心,它储存所有的数据,并对数据进行版本化管理。按照文件树形式存储数据——包括文件和目录。安装SVN Server 时设置版本库的路径,默认c: Repositories。SVN使用URL来识别版本库中的资源

在Repositories下创建Repository组织不同项目的版本库,例如:

(2)创建组和用户

创建用户并设置密码,如图所示:

创建组并添加用户,如图所示:

为用户设置版本库的读/写权限,选择其中某个版本库—>右键属性,弹出权限设置窗口

如图所示:

选择组或用户设置读/写权限,建议删除默认的Everyone的读写权限

五、SVN客户使用

软件开发团体的一员就是SVN的一个客户,因此SVN客户端的使用显得十分重要,主要操作包括import、check out、add 、commit、update

具体操作如下:

5.1 import入库操作

5.2 签出操作

5.3 提交添加新文件

5.4 提交文件更新(修改、删除的文件)

5.5 更新操作(将SVN服务器中所有版本变化更新到本地)

5.6 版本冲突的相关操作

5.7 避免冲突方法——加锁文件

5.8 版本还原

5.1 import入库操作

 将初始的项目(项目目录结构、接口、通用组件、静态页面等)导入版本库,操作如图:

执行import命令弹出import对话框,图中Import对话框与Visaul SVN Server窗口

在URL of repository中输入或选择URL(对应版本库中的资源),注意URL所对应版本库中的资源的必须存在(如上图所示),若不存在要首先在VisualSVN中创建(或使用命令方式svnadmin create c: Repositoriesmycrm),创建成功后c: Repositoriesmycrm

产生一些版本库相关的系统文件和目录,如下所示:

单击import对话框的ok按钮,按提示输入用户名和密码(指在SVN Server设置的账户和密码,可勾选Save authentication以后不再提示),完成后在VisualSVN Server可看到

这表示你的项目已入库,处于SVN版本控制中

5.2 签出操作

有两种方式check out 和 export,区别在于:

① export 方式仅仅是将版本库的文件拷贝到本地而已。

② check out 方式获得文件后,本地文件仍处于SVN版本控制中,这一点很重要。这也是主要的一种方式

在本地目录下,单击右键选择菜单命令,如图所示

 

执行Check out 弹出对话框,如图所示

 

URL of repository指你要导出的版本库,Checkout Directory设定存储的本地目录,单击Ok,导出完成后可看SVN服务器版本库中文件已迁出到指定的本地目录下,并且多出.svn目录这个表示该本地目录是受SVN服务器版本化控制的,图标表示文件或目录处于正常状态

5.3 提交添加新文件

在项目中增加一个新文件,例如在crm项目中添加一个login.html文件,新增的文件的图标为,表示该文件没有入库SVN服务器无法识别,选择该文件单击鼠标右键执行add命令,将文件入库如图所示

此时文件图标变为表示该文件已入库但还未更新,然后执行svn commit命令,从而完成新文件的版本化处理,如图所示

5.4 提交文件更新(修改、删除的文件)

操作和添加新文件类似,实际上对于本地变化的文件(包括添加、修改、删除的文件)都是执行svn commit命令提交给到SVN服务器完成版本化处理(该版本号会递增)。只不过对于新增文件需要先执行add命令让SVN服务器识别该文件,表示该文件内容发生变化,可通过菜单show Log命令查看版本的变化,如图所示

可以看到新增login.html版本号为2。

5.5 更新操作(将SVN服务器中所有版本变化更新到本地)

对于其他用户(指不是提交变化的用户),可执行SVN update命令完成将SVN服务器发生版本变化的文件更新到本地

如图所示:

通常我们(记住每个人就是SVN的本地客户)在工作时,会不断执行SVN Update命令以获取SVN服务器中最新的文件,从而获得其他人的变更。这也是作为一个项目版本管理软件最重要的功能之一——及时通知项目的变更

5.6 版本冲突的相关操作

冲突是指团队协同工作时,当多人修改同一个文件,造成本地文件与SVN系统中的文件版本不一致,而导致文件无法提交的情况。例如:user01对temp.txt文件进行编辑

添加“User01的数据信息”,User02也对temp.txt文件进行修改添加“User02的数据信息”,User01完成后执行SVN Commit,这时User02在执行SVN Commit提交就会产生冲突而提交失败,如图所示

这时(遇到冲突时)需要执行SVN Update更新这个文件,产生如图所示的信息框

并且会看到新增了三个文件

原文件的图标变为表示内容含有冲突

temp.txt.mine(格式:冲突文件名.扩展名.mine)记录了你的文件名内容

temp.txt.r7(格式:冲突文件名.扩展名.r版本号)记录了当前版本的上一个版本内容

temp.txt.r8(格式:冲突文件名.扩展名.r版本号)记录了当前版本的内容

接下来就是如何解决文件中的冲突,你可以选择以下方式解决冲突 

 

5.6.1、手动合并冲突文件

打开temp.txt可以看到

说明:.r8之间的就是冲突的部分,======之前的是你的内容,=====之后的是当前版本的内容可根据情况进行取舍,然后删除注释符号并删除新增的新增了三个文件,然后再提交就OK了!

5.6.2、执行Edit conficts命令解决冲突,如图所示

然后弹出如下窗口

可明显看出第2行冲突,操作如下:

1、  首先选择冲突行

2、单击工具栏按钮

单击按钮:

单击按钮:

单击按钮:

单击按钮:

单击保存会看到新增的三个文件已自动被删除(如果仍存在手动删除即可),这时再执行SVN Commit也OK了!

5.6.3执行revert命令放弃所做的修改,如图所示

该命令会自动用当前版本替换你的变化,并删除三个新增文件

5.7 避免冲突方法——加锁文件

多人同时操作同一个文件是产生冲突的根本原因。

为了减少冲突的发生避免一些不必要的麻烦,通常在变更文件之前执对该文件行一次SVN Update操作,但这样冲突还是会发生的,一个比较有效的方法是对文件加锁。其原理很简单在对文件变更之前先对文件上锁,这是有两种可能若文件有锁(表明有人在编辑)加锁失败,若文件没有锁则加锁成功。一个文件上锁后除了自己别人是不能对文件编辑的,当我们编辑完成之后再解锁,然后别人就可以加锁编辑了。这样就有效的避免了多人同时操作同一个文件时产生冲突

5.7.1加锁

执行Get Lock…命令,操作如下:

5.7.2 解锁

对已加锁的文件执行Release lock命令,如图所示:

5.8 版本还原

在开发中有时我们希望将文件的变更恢复到之前某个版本,这也是一个项目管理软件必备的功能,对于SVN执行Update to revision.. 命令即可

比如我们把temp.txt恢复到最初的状态,目前文件的内容如下图所示:

我们可以先执行Show log查看temp.txt的版本信息如图所示

可看出最初添加的文件的版本号18(不是2说明该文件被删除过,然后又被重新创建),然后执行Update to revision..命令,如图所示:

单击Ok按钮,完成后打开temp.txt文件可以看到文件已恢复到初始的内容了

六、Eclipse SVN客户端插件安装

Eclipse也提供了对SVN支持,但我个人感觉Eclipse提供的SVN客户端插件,不如TortoiseSVN好用,但Eclipse是我们开发的环境,因此建议两个结合起来应用。对于Eclipse提供的SVN客户端的使用同TortoiseSVN差不多,这里重点介绍一下在MyEclipse安装SVN客户端插件,站点地址:http://subclipse.tigris.org/

详细步骤如下:

6.1 安装

6.2 从SVN服务器导入项目

6.3 提交文件更新

6.4 更新操作(将SVN服务器中所有版本发生变化的更新到本地)

6.1 安装

具体操作:

Step 1:选择Help——>SoftwareUpdates——>add/Remove Soft

单击ADD按钮,弹出如下窗口

Step 2:单击Add Site,

在弹出的对话框中输入URL: http://subclipse.tigris.org/update_1.6.x,单击Ok即可

Step 3:选择内容一路Next即可

6.2 从SVN服务器导入项目

具体操作:

打开eclipse ,选File——>import——>选SVN,如图所示:

在URL中输入:版本库的路径比如https://jb:8433/svn/mycrm ,单击完成即可

6.3 提交文件更新

选择文件单击右键,选择team提交,即可 

6.4 更新操作(将SVN服务器中所有版本发生变化的更新到本地)

选择文件或目录单击右键,选择team-à更新,即可。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。