SVN安装配置和使用

    技术2022-05-20  54

    1.   SVN简介

    Subversion是新一代的版本控制工具,不仅仅应用于程序源代码管理,也可以广泛应用于其他需要协作管理数据的工作。Subversion 作为CVS 的重写版和改进版,其目标就是作为一个更好的版本控制软件,取代目前流行的CVSSubversion 的主要开发人员都是业界知名的CVS 专家。Subversion支持绝大部分的CVS 功能/命令;Subversion 的命令风格和界面也与CVS 非常接近。当然,不同的地方正是对CVS 的改进。主要体现在:全局性的版本编号、目录的版本控制、原子性提交、支持变更集概念。

    2.   SVN安装及配置

    2.1. 软件下载

    2.1.1.    服务端软件

    l         httpd-2.2.10.tar.gz

    下载地址:http://httpd.apache.org/

    Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。使用较多的是基于Apache下的svn的配置。

     

    l         subversion-1.5.4.tar.gz

    下载地址:http://subversion.tigris.org/downloads/subversion-1.4.5.tar.gz

    Subversion服务端软件。

    2.1.2.    客户端软件

    l         TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi

    l         LanguagePack_1.5.3.13783-win32-zh_CN.msi

    下载地址:http://tortoisesvn.tigris.org/

    较为常用的一种SVN Windows客户端管理软件,LanguagePack为中文包。

     

    l         site-1.4.6.zip

    下载地址:http://subclipse.tigris.org/

    subclipseSVNEclipse下的一种插件。

     

    l         VisualSVN-1.5.2.msi

    下载地址:http://www.visualsvn.com/visualsvn/download/

    SVNVS.net下的一种插件。

     

    l         svn-importer-1.1-M8.zip

    下载地址:http://www.polarion.org/index.php?page=overview&project=svnimporter

    CVSVSS切换到SVN的工具。

     

    以上服务端和客户端软件已经下载,保存在Sofe目录下。其它工具下载可参考网站http://subversion.tigris.org/

     

    2.2. 安装Apache

    1)        解压apache安装包

    tar xvzf httpd-2.2.10.tar.gz

    2)        进入解压后的目录

    cd httpd-2.2.10

    3)        配置apache安装

    ./configure --prefix=/usr/local/apache --enable-mods-shared=all

    apache安装在/usr/local/apache目录下。

    4)        编译

    make

    5)        安装

    make install

    6)        验证安装是否成功

    切换到apachebin目录

    cd /usr/local/apache/bin

    启动apache服务

    ./apachectl start

    打开浏览器http://10.192.77.222/ (根据实际IP)如果有测试页"It works!"出现则证明已经安装成功。

    2.3. 安装Subversion

    1)        解压SubVersion安装包

    tar xvzf subversion-1.5.4.tar.gz

    2)        进入解压后的目录

    cd subversion-1.5.4

    3)        配置subversion安装

    ./configure --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/subversion --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache

    4)        编译

    make

    5)        安装

    make install

    6)        创建库文件所在的目录

    SubVersion安装完成后,创建库文件所在目录,相当于SubVersion的存储目录,路径可根据实际计划指定。

    mkdir /web/svn

    7)        创建仓库project

    cd /usr/local/subversion/bin

    ./svnadmin create /web/svn/project

    完成后切换到/web/svn/project,看看是不是多了些文件,如果是则说明Subversion安装成功了

    2.4. 修改Apache配置文件

    1)        打开配置文件

    vi /usr/local/apache/conf/httpd.conf

    2)        LoadModule模块添加

    LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so

    如果modules目录下不存在以上两个so文件,需要手工拷贝。

    3)        在配置文件最后添加

    <Location /svn>    DAV svn    SVNParentPath /web/svn    AuthzSVNAccessFile /web/svn/authz.conf   AuthType Basic   AuthName "Subversion"   AuthUserFile /web/svn/authfile   Require valid-user</Location>

    SVNParentPath表示svn的父目录

    AuthType表示连接类型

    AuthName表示连接框显示的信息

    AuthzSVNAccessFile表示权限配置文件路径

    AuthUserFile表示用户配置文件路径

    Require valid-user表示采用用户名密码方式认证

    2.5. 权限管理

    2.5.1.    增加用户

    使用apachehtpasswd命令增加用户,默认采用MD5方式加密

    cd /usr/local/apache/bin

    增加test用户,系统会要求输入密码和确认密码。第一次增加用户,创建authfile时,使用-c选项,继续添加用户时,不可再使用。

    ./htpasswd -c /web/svn/authfile test

    依次添加其它用户(根据需求),为显示权限分配,本例添加以下用户:wdwu, tyang, yfpeng, ljyan, xsli, hgao

    ./htpasswd /web/svn/authfile wdwu

    ……

    2.5.2.    权限分配

    创建/web/svn/authz.conf文件,进行权限管理。示例内容如下:

    [groups]

    g_admin = wdwu

    g_vip = tyang

    g_jhtpay = tyang,ljyan,yfpeng

    g_odsb = xsli,hgao,yfpeng

     

    [/]

    @g_admin = r

     

    [project:/]

    @g_admin = rw

    @g_vip = r

     

    [project:/jhtpay]

    @g_jhtpay = rw

     

    [project:/odsb]

    @g_odsb = rw

     

    groups用来定义用户组,如g_admin = wdwu,组名为g_admin,组成员为wdwu

    一个用户可以同时属于多个组。

    [/]

    @g_admin = r

    表示g_admin组对根目录有读权限,注意组前要加@符号。

    [project:/]

    @g_admin = rw

    @g_vip = r

    表示g_adminproject库根目录具有读写权限,g_vip组具有读权限。

    [project:/jhtpay]

    @g_jhtpay = rw

    表示g_jhtpay组对project下的子目录jhtpay具有读写权限。

    [project:/odsb]

    @g_odsb = rw

    表示g_odsb组对project下的子目录odsb具有读写权限。

     

    通过以上配置,管理员对所有目录具有读写权限,项目组成员对本项目具有读写权限,不能访问其它项目内容。

     

    2.6. 验证

    重启apache服务,通过客户端工具,使用不同用户登录,对目录进行操作,验证权限设置。

    3.   Windows客户端TortoiseSVN使用

    3.1. 安装

    安装TortoiseSVN和中文包

    TortoiseSVN-1.5.3.13783-win32-svn-1.5.2.msi

    LanguagePack_1.5.3.13783-win32-zh_CN.msi

    TortoiseSVN会将资源管理器进行扩展,在右键菜单中添加子菜单,提供svn的功能。

    3.2. 图标说明

    normal

    一个新checkout的工作副本使用绿色的对勾做重载。表示Subversion 状态正常。

    modified

    在你开始编辑一个文件后,状态就变成了已修改,而图标重载变成了红色感叹号。通过这种方

    式,你可以很容易地看出哪些文件从你上次更新工作副本后被修改过,需要被提交。

    conflicted

    如果在更新的过程中出现了冲突,图标会变成黄色感叹号。

    readonly

    如果你给一个文件设置了svn:needs-lock属性,Subversion 会让此文件只读,直到你获得文件

    锁。具有这个重载图标的文件来表示你必须在编辑之前先得到锁。

    locked

    如果你拥有了一个文件的锁,并且Subversion 状态是正常,这个重载图标就提醒你如果不使

    用该文件的话应该释放锁,允许别人提交对该文件的修改。

    deleted

    这个图标表示当前文件夹下的某些文件或文件夹已经被调度从版本控制中删除,或是该文件夹

    下某个受版本控制的文件丢失了。

    added

    加号告诉你有一个文件或目录已经被调度加入版本控制。

    ignored

    忽略

    non-version

    没有纳入版本管理的文件

    3.3. 常用功能

     

    SVN更新:将服务上的变化更新到本地

    SVN提交:将本地的变化提交到服务器

    SVN还原:取消本地的修改,将服务器文件覆盖本地文件。

    检查更新:对比服务器端和本地文件的变化。

    更新至版本:将服务器的某个版本更新到本地,最常用的是获取最新版本。

    版本库浏览器:以资源管理器方式对服务器文件进行管理。

    获取锁定:锁定某个文件,使他人在解锁之前不能更改对应服务器文件。

    解除锁定:解除对文件的锁定,使他人可以更改对应服务器文件。

     

     

     

     

     

    4.   MyEclipse插件subclipse使用

    4.1. 安装

    site-1.4.6.zip解压的内容拷贝到MyEclipse 6.0/eclipse目录,启动MyEclipse即完成对插件的安装。

    4.2. 使用

    添加项目到SVN

     

    SVN导入项目

     

     

    用法和CVS相似,不再累述。

    5.   VS.net插件visualsvn使用

    安装visualsvn完成后,启动vs.net环境,在菜单中添加了VisualSVN菜单,提供版本管理功能。

     

     

    6.   CVS迁移到SVN

    迁移工作分为二步,先利用svn-importer工具将CVS中的项目导出为dump文件;然后利用SVNsvnadmin load命令将dump文件导入SVNsvn-importer导出需要花费较长的时间。具体操作步骤如下:

    1)  svn-importer-1.1-M8.zip解压。

    2)  修改svn-importer配置文件。

    svn-importer目录下已经存在默认配置文件config.properties,只需要复制一份修改部分参数即可。此处复制一份为config1.properties

    srcprovider=cvs

    设置从哪个vcs库导出,可选的值有cvs,cvsrcs,pvcs,mks,cc,vss,st,此处选择cvs

     

    import_dump_into_svn=no

    设置导出dump后是否直接导入svn,因为我们分步做,所以此处选择no

     

    full.dump.file=full_dump_

    转载请注明原文地址: https://ibbs.8miu.com/read-2229105.html

    最新回复(0)