zoukankan      html  css  js  c++  java
  • 使用Subversion构建版本控制环境(Windows)

    使用Subversion构建版本控制环境(Windows)

     

    摘要:

        在 软件开发中,CVS在很长的一段时间内一直都是版本控制的首选。但是现在用户有了另一个或许是更好的选择SVN(subversion)。SVN是下一代 版本控制系统,完全可以替代CVS,CVS下的项目,也可以非常容易的转到SVN的控制之下(SVN项目主页是 http://subversion.tigris.org,Tigris本身就是一些在SVN控制下的开源项目,可以说是sourceforge的 SVN版本)。

        SVN是一个自由、开放源码、跨平台的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。 

        SVN 的设计目标很明确,实现绝大部分CVS的已有功能,充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够 顺利迁移到SVN上。作为新一代的版本控制系统,和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与 标记等。

        现在,好多开源项目已经开始转移到了SVN控制之下。作为软件开发者,使用Subversion控制所开发的项目是必然趋势,本文即以Apache+SVN为例,介绍了SVN环境的答建以及简单使用方法。

     

    一、准备相关软件

    a)       、Subversion服务器svn-win32-1.3.2.zip

          建议直接到http://subversion.tigris.org/下载最新版本

    b)       、Subversion客户端TortoiseSVN-1.3.5.6804-svn-1.3.2.msi

    TortoiseSVN是一个非常不错的SVN客户端,可以实现跟资源管理器的紧密结合。建议到http://tortoisesvn.tigris.org/下载最新版(相信很多使用过CVS的朋友应该用过TortoiseCVS吧)。

    c)       、VS.NET使用SVN的插件AnkhSetup-0.5.3.1636.msi

    AnkhSVN是一个相当不错的VS.NET的SVN插件,可以到AnkhSVN的官方网站下载最新版本http://ankhsvn.tigris.org/。有关AnkhSVN的更详细的信息,请访问http://ankhsvn.tigris.org/screenshots.html

    d)       、Apache Web服务器(svn-1.3.2建议使用apache-2.0.54)。

    可以到http://www.apache.org/dist/下载合适的版本,最好跟subversion软件中使用的版本一致,若要求的apache版本比较旧,可以到apache历史版本页面下载http://archive.apache.org/dist/

        e) 、TortoiseSVN简体中文语言包(LanguagePack-1.3.5.6804-win32-zh_CN.exe)          ,请到http://tortoisesvn.tigris.org/download.html选择下载相应的版本。

    小技巧:

        以上软件下载完了后,不妨放到同一文件夹下,并附加一包含软件简单说明的readme.txt文件,以备日后使用。

    二、软件安装

    a)       、安装apache

    Apache的安装相当简单、值得注意的一点是,若已经安装了IIS,请先停止,可以使用以下命令:

    Net stop w3svc

    b)       、安装TortoiseSVN &TortoiseSVN简体中文语言包

    安装没什么特别之处,只要先安装TortoiseSVN在安装语言包即可。

    c)       、安装Subversion.

                         i.              解压下载得到的svn-win32-1.3.2.zip到c:/usr/local/目录。并重命名为svn,即可/usr/local/svn/;

                      ii.              拷贝libeay32.dll、ssleay32.dll两个DLL件到c:/winnt/system32目录;

                  iii.              拷贝libapriconv.dll、libdb43.dll、intl3_svn.dll到apache/bin目录;

                      iv.              拷贝mod_dav_svn.so、mod_authz_svn.so两个文件到apache的Modules/目录;

                         v.              在apache的conf/目录下建立一个文本文件mod_svn.conf输入以下内容

    #加载相应模块

    LoadModule dav_svn_module /usr/local/svn/bin/mod_dav_svn.so

    LoadModule authz_svn_module /usr/local/svn/bin/mod_authz_svn.so

    #LoadModule dav_svn_module   modules/mod_dav_svn.so

    #LoadModule authz_svn_module modules/mod_authz_svn.so

     

    #配置仓库

    <Location /svn>

     DAV svn

     SVNParentPath /usr/local/repository#仓库父目录位于c:/usr/local/repository

     # SVNPath /usr/local/respository/svn1 #仓库目录

    </Location>

                      vi.              若需要使用Apache验证则还需要做以下调整:

    进入apache/bin目录,执行以下命令产生密码验证文件

    htpasswd -cm /usr/local/svn/svn-auth-file user1

    提示输入密码时输入该用户的密码

    若还需要增加用户user2,则执行以下命令

    htpasswd -m /usr/local/svn/svn-auth-file user2

    删除某个用户(user2),可以使用下列指令:

    htpasswd -D /usr/local/svn/svn-auth-file user2

    使用htpasswd产生密码文件

                  vii.              启用验证后,SVN相关配置如下

    <Location /svn>

     DAV svn

     SVNParentPath /usr/local/repository#仓库父目录位于c:/usr/local/repository

     AuthType Basic

     AuthName "Subversion repository"

     AuthUserFile /usr/local/svn/svn-auth-file

     Require valid-user

     AuthzSVNAccessFile /usr/local/svn/svn-access-file

    </Location>

               viii.              配置文件中使用到了svn-access-file,这个文件是用来控制用户访问SVN仓库权限的,下面就讲述以下access文件的配置。

    [svn1:/]            //这表示,仓库svn1的根目录下的访问权限

    user1 = rw          // svn1仓库user1用户具有读和写权限

    user2 = r           // svn1仓库user2用户具有读权限

    [svn2:/]            //svn2仓库根目录下的访问权限

    user1 = r           // user1用户在svn2仓库根目录下只有读权限

    user2 =             // user2用户在 svn2仓库根目录下无任何权限

    #[/]                // 这个表示在所有仓库的根目录下

    #* = r              // 这个表示对所有的用户都具有读权限

    #[groups]           // 这个表示群组设置

    #svn1-developers = user1,user2   // 这个表示某群组里的成员

    #svn2-developers = user1

    #[svn1:/]            

    #@svn1-developers = rw// 如果在前面加上@符号,则表示这是个组权限设置

                      ix.              重启APACHE

    注意:DocumentRoot目录与svn的SVNParentPath值不可设置为一样,否则可能会出现301 Moved Permanently…错误

     

                        

    三、软件使用

    a)       、使用命令行(CMD窗口模式)

    创建新的版本库

    svnadmin create /path/to/repository

    svnadmin是有用的subversion系统管理命令,使用svnadmin help查看在线帮助

    信息。

    添加新的项目(import new project)

     

    svn import project file:///repository_name/project -m "Comment"

    svn import project http://yourhost/svn_dir/repository_name/project -m "Comment"

     

    检出(checkout)项目

    svn checkout file:///repository_name/project/trunk project

    svn checkout http://yourhost/svn_dir/repository_name/project/trunk project

     

    列出仓库中的项目(list)

    svn list --verbose file:///repository_name/project

    svn list --verbose http://host/svn_dir/repository_name/project

     

    状态查询(status)

    svn status

    给出新文件,已经改变的文件和被删除的文件列表;

     

    添加文件或目录(add)

    svn add

     

    删除文件或目录(delete)

    svn delete

    svn delete http://yourhost/svn_dir/repository/project_dir

     

    提交(commit)

    svn commit http://yourhost/svn_dir/repository/project_dir

     

    更新(update)

    svn update

    更新仓库中的文件到本地。

     

    标签和特殊版本项目

    使用copy命令

    svn copy http://yourhost/repos/project/trunk http://yourhost/repos/project/tags/1.0.0

    用于创建某个特定版本的快照(snapshot);

    svn list http://yourhost/repos/project/tags/1.0.0

    b)       、下面我们就用以上介绍的命令创建一个测试仓库

                         i.              打开命令提示符,进入E:/repository目录,执行以下命令

                      ii.              重启apache,浏览http://localhost/repos/qjoa,若看到以下画面,则表示SVN已经正常工作

                  iii.              刚才建立的仓库只是一个空的仓库,里面没有任何的项目/文件,下面,我将演示一下怎么向该仓库添加项目,使用以下命令

    svn import D:\WorkSpace\OTH_007_QJTech-OA http://localhost/repos/qjoa -m "SVN init project"

    注意:以上命令必须单行输入,import项目时,最好先去掉apache验证,否则将导致import项目失败!

                      iv.              OK,重新浏览http://localhost/repos/qjoa试试,若出现跟下图类似的画面,则表示项目导入成功;

     

    c)       、TortoiseSVN操作简介

                         i.              选择语言

    TortoiseSVN安装后,默认使用的是英文,为了使用中文需要执行以下操作,在windows资源管理器中右击TortoiseSVN->Settings.

    弹出以下对话框,选择“中文(简体)”后点击应用,即更改默认显示为中文如下图所示:

                      ii.              添加项目(import)

    进入需要导入的文件夹,右击 “TortoiseSVN”->“导入”,则可出现如下图所示对话框,在文件库路径中填写刚新建的仓库http://www.ilinux.com.cn/repos/qjoa,点击确定,即可完成项目的导入

                  iii.              检出项目(checkout)

    在工作目录新建一文件夹QJOA(我使用的是D:/workspace/qjoa),在有多个项目时,使用工作目录绝对是一个不错的习惯^_^,进入qjoa目录,右击,即出现如下图所示菜单

    单击“SVN取出”,则出现如下图所示的画面,

    填写适当的信息,单击确定,则TortoiseSVN将开始检出项目,如下图所示

     

                      iv.              列出项目

    资源管理器中右击TortoiseSVN->文件库浏览器

    在URL栏中填入仓库路径,就可以浏览仓库内容,如下图所示

                         v.              状态查询

                      vi.              添加文件或目录

    选中要添加的文件夹或文件右击 “TortoiseSVN”->“添加”

                  vii.              删除文件或目录

    选中要添加的文件夹或文件右击 “TortoiseSVN”->“删除”

               viii.              提交修改

    在工作目录,右击 —>“SVN提交”

                      ix.              更新

    在工作目录,右击 —>“SVN更新”

    注意:添加或删除后需要进行提交操作。更多的有关Subversion的详细用法,请查阅Subversion官方文档中文版本

     

     

    四、相关资源

    a)       Subversion中文站http://www.subversion.org.cn/);

    b)       Subversion官方站http://subversion.tigris.org/);

    c)       Subversion官方文档中文版本http://www.easyea.com/doc/CH/svnbook/);

    五、参考

    a)       Installing Subversionhttp://svn.collab.net/repos/svn/trunk/INSTALL);

    b)       CVS to SVN Crossover Guidehttp://svn.collab.net/repos/svn/trunk/doc/user/cvs-crossover-guide.html);

    c)       apache文档2.0http://httpd.apache.org/docs/2.0/);

     

     

     

    下载本文档电子版本

  • 相关阅读:
    并发量,tps,qps
    MYSQL安装和配置
    python 生成随机数的几种方法
    python 判断是字母的多种方法
    python实战,
    linux工作常用命令
    apache http server安装
    .py与.pyc文件区别
    上传本地文件到linux
    ms
  • 原文地址:https://www.cnblogs.com/dzone/p/1985657.html
Copyright © 2011-2022 走看看