zoukankan      html  css  js  c++  java
  • 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-à更新,即可。

    作者:杰瑞教育
    出处:http://www.cnblogs.com/jerehedu/ 
    本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
     
  • 相关阅读:
    GDB Practice
    GCC常用命令
    使用VS2010 C#编写ActiveX控件
    [.NET] 使用 .NET Framework 開發 ActiveX Control
    VC2005开发MFC ActiveX控件
    Register DLL and OCX
    COM组件开发实践
    Java Invoke C and C++ Using JNI
    Unable to cast object of type 'System.Int32' to type 'System.String'.
    SharePoint wiki 分类获取所有的
  • 原文地址:https://www.cnblogs.com/jerehedu/p/4235571.html
Copyright © 2011-2022 走看看