zoukankan      html  css  js  c++  java
  • [软件工程]Windows下SVN服务端的配置

    一、软件下载
    1、服务器端软件Subversion,              地址:http://subversion.apache.org/packages.html#windows
    2、客户端软件TortoiseSVN ,               地址:http://tortoisesvn.net/downloads.html
     
    二、安装
    1、服务器端
    下载好服务器端软件后,双击运行安装程序,目录:F:\Program Files\Subversion\。
    2、客户端
    跟服务器端一样,下载好后双击,傻瓜安装。
     
    三、建立本机Repository
    Repository 即源码的集中存放处,所有修改后提交的源码就是保存在这里,并在其中记录所有的修改版本,分支版本,版本合并,以及并发修改处理等。比如我把源码库放在F:\svnroot\myproject(注意,确保不能删除),然后在此文件夹上右键,选择TortoiseSVN->Create repository here[这是在已经安装了TortoiseSVN 的前提下],也可以通过命令 svnadmin create F:\svnroot\myproject创建。
    创建完后,在这个目录下会自动产生一些目录和文件,[注:svnroot相当于一个根目录,下面放很多项目;myproject即是某个项目名;每个项目都需要建立Repository] 如下图:
    dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号;
     
    四、配置
    配置只需要配置服务器端,并且是针对每个项目的。打开目录F:\svnroot\myproject\conf\,要更改的文件有三个:authz, passwd和svnserve.conf。注意,这三个文件配置时,去掉#后,行前面都不能有空格。
    1、authz文件
    创建用户组,比如group1,里面有三个用户user1, user2和user3,权限为rw即读写权限。
    注:如果svnserve.conf文件中,你打开了authz-db = authz选项后,在这里,则必须把项目repository 添加至此。即添加[myproject:/]。
    2、passwd文件,用来修改用户密码
    这里三个用户的初始密码都设置为123。
    3、svnserve.conf文件
    需要更改的就是如下几行,把每行前面的注释#拿掉,如下图
    改成:
    注:realm要指定为我们的源码版本库,在这里为myproject。
     
    五、运行和测试
    可以用命令行svnserve.exe -d -r F:\svnroot,回车后没有什么反应,但是不能把命令行窗口关掉,如果关掉服务就终止了。启动服务后我们可以测试一下,打开一个文件浏览器,右键TortoiseSVN->Repo-browser,当然客户端程序TortoiseSVN要装好。
    键入服务器端的Repository地址
    单击OK,如果能看到如下窗口就证明安装配置成功了
    这样就可以在客户端用前面配置的三个用户进行访问了,注意在其它机器上访问的时候要把127.0.0.1改成本机IP,关于客户端如何使用这里就不作介绍了。
     
    六、添加SVN服务
    前面我们是用命令行窗口启动svn服务的,窗口不能关闭,这样非常不方便。下面就来讲一下如何将服务放到windows服务中,这样开机后就自动启动。这里采用命令行的方式:
    用后台服务的方式可以设置开机自动执行。
    F:\Program Files\Subversion\bin>sc create svnservice binpath= "F:\Program Files\Subversion\bin\svnserve.exe --service -r F:\svnroot"
    就可以用net svnservice stop 或者start来启动服务了 也可以在Sevices.msc来启动了。
    [注:=号后,一定要有一个空格]
    然后我们就可以在Windows Service中看到该服务了,将其改成自动启动,这样每次开机就会自动启动svn service了。
    补充:删除windows后台服务的方式:
    方法一: 用sc.exe这个Windows命令
       开始——运行——cmd.exe,然后输入sc就可以看到了。使用办法很简单:
       sc delete "服务名" (如果服务名中间有空格,就需要前后加引号)
       如针对上面的: sc delete svnservice 
    方法二:直接进行注册表编辑
       打开注册表编辑器,找到下面的键值:
       HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 一般服务会以相同的名字在这里显示一个主健,直接删除相关的键值便可。
     
    七、对可能碰到的问题的解法
    基于svnserve的服务器,权限文件authz配置的常见问题及解答 
    为什么我的客户端没有写权限? 
    为什么我的权限没有起作用?
     
    总结配置,发现 
    都是用svnserve作为服务器, 
    都在svnserve.conf中使用了authz-db选项
     
    原因可能如下:
     
    1,配置authz时,没有注意svnserve启动参数-r所指定的目录。 
    这里有两种情况: 
    A:-r直接指定到版本库(称之为单库svnserve方式) 
    比如,有一个库project1,位于D:/svn/project1 
    使用以下命令启动svnserve
     
    [Copy to clipboard] [ - ]CODE: 
    svnserve -d -r D:/svn/project1 
    在这种情况下,一个svnserve只能为一个版本库工作 
    authz文件如果配置成下面这样就是错的,
     
    [Copy to clipboard] [ - ]CODE: 
    [groups] 
    admin=user1 
    dev=user2 
    [project1:/] 
    @admin=rw 
    @doc=r 
    应该配置成
     
    [Copy to clipboard] [ - ]CODE: 
    [groups] 
    admin=user1 
    dev=user2 
    [/] 
    @admin=rw 
    @doc=r 
    因为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。 
    使用类似这样的URL:svn://192.168.0.1/ 即可访问project1
     
    B:-r指定到版本库的上级目录(称之为多库svnserve方式) 
    同样,有一个库project1,位于D:/svn/project1 
    如果使用以下命令启动svnserve
     
    [Copy to clipboard] [ - ]CODE: 
    svnserve -d -r D:/svn 
    这种情况,一个svnserve可以为多个版本库工作, 
    这时如果想限制指定库的指定目录,就应该指定具体的库,像这样
     
    [Copy to clipboard] [ - ]CODE: 
    [groups] 
    admin=user1 
    dev=user2 
    [project1:/] 
    @admin=rw 
    @doc=r 
    如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录 
    使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1 
    这样的URL:svn://192.168.0.1/project2 即可访问project2
     
    2,对中文目录进行权限控制时,没有将权限文件authz改为utf-8格式。
     
    svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制, 
    应该使用无BOM的utf-8格式,如何将默认的文件转为utf-8, 
    我使用的是UltraEdit的菜单"ASCII to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以设置有无BOM
     
     
     
     
     
     
     
     
     



  • 相关阅读:
    tomcat使用redis存储共享session
    dubbo专题」dubbo其实很简单,就是一个远程服务调用的框架(1)
    SpringBoot Test集成测试
    IntelliJ Idea设置护眼浅绿色背景方法
    IDEA使用有道翻译插件
    IDEA Translation插件中有道智云(有道翻译)应用ID,密钥申请教程
    利用grep-console插件使Intellij idea显示多颜色调试日志
    mybatis 整合spring之mapperLocations配置的问题
    idea将maven项目打包成war包的方式,以及使用war包
    maven 常用命令
  • 原文地址:https://www.cnblogs.com/reynold/p/2389580.html
Copyright © 2011-2022 走看看