SVN详细配置与使用 ——一步步教会您使用

Posted yuyu666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN详细配置与使用 ——一步步教会您使用相关的知识,希望对你有一定的参考价值。

  项目管理在项目开发活动中起到非常重要的作用,而对于初学者来说学习有一定的难度,且不说如何使用,就是搭建过程恐怕也要费一般周折,介于此下面就通过图解的方式一步一步详细的教大家如何使用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可以看到

技术分享图片

  说明:<<<<<.mine到 >>>>>.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-à更新,即可。

以上是关于SVN详细配置与使用 ——一步步教会您使用的主要内容,如果未能解决你的问题,请参考以下文章

WebStorm2018.1 下配置与使用SVN详细教程

PHP项目开发不可缺少的工具-SVN视频教程

SVN-权限详细配置

一步步教你如何配置Java环境变量(超级详细)

SVN - Linux下SVN详细配置文档

svn服务器配置