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的区别。功能挺强大,具体使用不做详解。

  • 相关阅读:
    DVWA 黑客攻防演练(十)反射型 XSS 攻击 Reflected Cross Site Scripting
    DVWA 黑客攻防演练(九) SQL 盲注 SQL Injection (Blind)
    DVWA 黑客攻防演练(八)SQL 注入 SQL Injection
    DVWA 黑客攻防演练(七)Weak Session IDs
    DVWA 黑客攻防演练(六)不安全的验证码 Insecure CAPTCHA
    DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
    工作流表结构设计
    Visual Studio 2019尝鲜----新建空项目体验
    《使用CSLA 2019:CSLA .NET概述》原版和机译文档下载
    .NET快速开发平台的在线预览
  • 原文地址:https://www.cnblogs.com/gebenhagen/p/1690841.html
Copyright © 2011-2022 走看看