zoukankan      html  css  js  c++  java
  • 【转】SVN版本控制器的安装和配置

    文章来源:Subversion中文站

          如何快速建立Subversion服务器,并且在项目中使用起来,这是大家最关心的问题,与CVS相比,Subversion有更多的选择,也更加的容易,几个命令就可以建立一套服务器环境,可以使用起来,这里配套有动画教程
           本文是使用Subversion最快速的教程,在最短的时间里帮助您建立起一套可用的服务器环境,只需略加调整就可以应用到实际项目当中。
    本教程分为以下几个部门,不仅仅是快速入门,最后我们还有一些高级功能的说明,为了说明简单,教程是在windows下使用的方式,以方便资源有限的项目使用,对于UNIX环境下,区别并不大。

    软件下载

    服务器和客户端安装

    建立版本库(Repository)

    配置用户和权限

    运行独立服务器

    初始化导入

    基本客户端操作

    1,软件下载

    下载Subversion服务器程序。

    官方网站的下载二进制安装文件,来到二进制包下载部分,找到 Windows NT, 2000, XP and 2003部分,然后选择" this directory ",这样我们可以看到许多下载的内容,目前可以下载 svn-1.4.0-setup.exe

    下载Subversion的Windows客户端TortoiseSVN。

    TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
    官方网站是TortoiseSVN ,下载方式和前面的svn服务器类似,在Download页面的我们可以选择下载的版本,目前的最高稳定版本的安装文件为TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi

    2,服务器和客户端安装

    服务器安装,直接运行svn-1.4.0-setup.exe ,根据提示安装即可,这样我们就有了一套服务器可以运行的环境。

    安装TortoiseSVN,同样直接运行TortoiseSVN-1.4.0.7501-win32-svn-1.4.0.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。若是不习惯英文还可以选择安装客户端语言汉化包“LanguagePack-1.4.5.10425-win32-zh_CN.exe”(也需下载),安装后默认还是英文,需要在客户端工具中设置一下。

    此外,在编译器中也可以使用SVN插件来代替客户端工具,使开发起来更加方便。详细介绍请见Eclipse中SVN版本控制插件的安装和使用

    3,建立版本库(Repository)

    运行Subversion服务器需要首先要建立一个版本库(Repository),可以看作服务器上存放数据的数据库,在安装了Subversion服务器之后,可以直接运行,如:

    svnadmin create E:\svndemo\repository

    就会在目录E:\svndemo\repository下创建一个版本库。

    我们也可以使用TortoiseSVN图形化的完成这一步:
    在目录E:\svndemo\repository下"右键->TortoiseSVN->Create Repository here...“, 然后可以选择版本库模式, 这里使用默认即可, 然后就创建了一系列目录和文件。


    4,配置用户和权限

    svn的权限管理涉及到一下文件:
    passwd文件   --   /conf目录下   用于存放本svn库的用户名和密码,用 = 分割,左边是用户名,右边是密码(明文)。
    authz   --   /conf目录下   用于存放本svn库的访问授权信息。
    svnserve.conf   -- /conf目录下   用于存放本svn库的全局访问控制信息。

    来到E:\svndemo\repository\conf目录,修改svnserve.conf:
    # [general]
    # password-db = passwd
    改为:
    [general]
    password-db = passwd 然后修改同目录的passwd文件(设置用户密码),去掉下面三行的注释再加两个用户:
    # [users]
    # harry = harryssecret
    # sally = sallyssecret
    最后变成:
    [users]
    harry = harryssecret
    sally = sallyssecret
    svnadmin = admin
    zgz = zgz0809
    最后修改同目录的authz文件,它定义了两部分的内容:
    1,对组成员的定义,
    2,对目录的授权定义,
    可以针对一个单一用户授权,也可以针对在[groups]里面定义的一个组授权,还可以用*通配符来对所有的用户授权,
    授权的选项有:只读访问('r'),读写访问('rw'),或者无权防问('').
    authz文件中可以对任意多个目录进行权限控制,一下是一个例子:

    [groups]
    harry_and_sally = harry,sally
    #设定权限组

    [/]
    svnadmin = rw

    [/truck]
    zgz = rw
    harry = rw
    sally = r
    * = r

    [/sanguo]
    zgz = rw
    harry = r
    sally = rw
    * = r

    [/ts]
    @harry_and_sally = rw
    # 以@为键值意味着对前面定义的组进行授权
    * = r

    # [repository:/baz/fuz]
    # @harry_and_sally = rw
    # * = r

    用户svnadmin权限最大,他可以进行根目录(注意:是服务器目录svn://localhost/,下边会介绍的)下所有文件(包括子目录下的文件)的读写操作,而/truck,/sanguo,/ts是在服务器的根目录下创建的三个子目录。
    用户zgz 和harry对 /truck具有读写权限,sally 只有读的权限。
    用户zgz 和sally对 /sanguo具有读写权限,harry 只有读的权限。
    用户harry 和sally对 /ts具有读写权限,zgz只有读的权限。(* = r 表示所有用户都具有读的权限,当然zgz也就自然具有了。注意这里 @harry_and_sally = rw 表示给harry_and_sally组所有用户授权,该组在上边[groups]标签中已定义)

    注意:如果用户对一个目录具有某种权限,那么他对其子目录也有同样的权限(例如:svnadmin),所以在授权时要特别注意,尽量只付给满足用户需要的最小的权限。

    5,运行独立服务器

    在任意目录下运行:
    svnserve -d -r E:\svndemo\repository 我们的服务器程序就已经启动了。注意不要关闭命令行窗口,关闭窗口也会把svnserve停止。为了方便,可以把svnserve作为服务,在2000下控制台窗口可以运行,创建服务命令:

    sc.exe create SVNService binpath= "D:\Subversion\bin\svnserve.exe --service -r E:\svndemo\repository" depend= tcpip
    如果加错了可以用:sc delete "SVNService" 命令删除服务。
    加好后可以在控制面板的服务选项中找到它,把它启动类型设为手动,然后启动一下看看有没有问题。


    注意

    1."D:\Subversion"是SVN服务器端的安装路径,"E:\svndemo\repository"是版本库的路径,视具体情况而定。
    2. 等号前无空格后有空格。
    3. 应使用参数“--service”而不是“-d”,参数前面的横线不是一个是两个。
    4. binpath内套的路径如果包含空格,也需要使用双引号,此时需要使用转义符表示内部的引号(\")。
    5.使用“SVNService.exe”将SVN作为Window服务运行(Subversion1.4之前版本也可使用)
    SVNService.exe -install -d -r E:\svndemo\repository


    6,初始化导入

    来到我们想要导入的项目根目录,在这个例子里是E:\svndemo\wc1,目录下有一个readme.txt文件:


    右键->TortoiseSVN->Import...
    URL of repository输入“svn://localhost/” ,如果服务安装在其他机器则将localhost改换为目标机器的IP地址“svn://10.8.6.87/”。
    ok
    完成之后目录没有任何变化,如果没有报错,数据就已经全部导入到了我们刚才定义的版本库中。

    需要注意的是,这一步操作可以完全在另一台安装了TortoiseSVN的主机上进行。例如运行svnserve的主机的IP是10.8.6.87,则URL部分输入的内容就是“svn://10.8.6.87/”,一般为了便于管理不会导入到服务的根目录下,而是导入到工程的子目录,如/truck,/sanguo,/ts。导入的URL就添svn://localhost/truck。


    7,基本客户端操作

    取出版本库到一个工作拷贝:
    来到任意空目录下,在本例中是E:\svndemo\wc1,运行右键->Checkout,在URL of repository中输入svn://localhost/,这样我们就得到了一份工作拷贝。
    在工作拷贝中作出修改并提交:
    打开readme.txt,作出修改,然后右键->Commit...,这样我们就把修改提交到了版本库,我们可以运行。

    察看所作的修改:
    readme.txt上右键->TortoiseSVN->Show Log,这样我们就可以看到我们对这个文件所有的提交。在版本1上右键->Compare with working copy,我们可以比较工作拷贝的文件和版本1的区别。功能挺强大,具体使用不做详解。

  • 相关阅读:
    第一章 经济基础知识
    105_实例
    SQL开窗函数
    Docker教程:Docker入门实践
    102_HDFS分布式文件系统
    [转]远程连接出现身份验证错误,要求的函数不受支持
    flutter创建工程指定iOS及Android开发语言
    架构师学习之路:康威定律
    智能识别客户收货地址信息
    深入理解Apache Dubbo与实战 pdf
  • 原文地址:https://www.cnblogs.com/gebenhagen/p/1690841.html
Copyright © 2011-2022 走看看