首页 > 代码库 > 在windows服务器上安装subversion
在windows服务器上安装subversion
windows安装:
1、下载subversion
各个版本的说明:
CollabNet:
功能最强大的,因为svn的创始者就是CollabNet,不过这个版本因为功能最多,所以整个软件包也是最臃肿的,安装包就有100多M,而且因为是运行在java平台上的,要占用很大的内存资源
SlikSVN和Win32Svn:
这两个基本是一样的,都只有svn的内核,没有界面,也就是使用的时候只能用命令行操作。这两者稍微有些区别,比如Win32Svn提供了和apache的库文件,而SlikSVN没有。不存在客户端和服务端之分,本身svn既是服务端又是客户端。
VisualSVN:是最傻瓜化的svn,安装和配置都是有图形界面,操作起来很方便。
2、按照软件安装方式安装
3、配置成系统服务,避免买次都要命令行
在dos下面执行这个命令:
C:\>sc create Subversion binpath= "D:\Subversion\bin\svnserve.exe --service -r e:\svnRepos" displayname= "SVNService" depend= tcpip start= auto
注意:SC 是用于与服务控制管理器和服务进行通信的命令行程序。
(1)参数binPath表示svnserve可执行文件的安装路径
(2)--service参数表示以windows服务的形式运行
(3)-r指明svn repository(svnadmin create 创建的仓库)的位置
(4)displayname表示在windows服务列表中显示的名字
(5)binPath的等号前面无空格,等号后面有空格 displayname depend start也都一样 service前面是--,不是- ,而r前面是-
运 行这一行命令,两个路径分别是svnserve.exe的地址和版本库的地址(版本库地址一般是apache的根目录,这样就可以多建几个版本库了)。 start=auto,每次开机自动运行。关键需要注意的是等号后面必须先跟空格然后再跟设置的参数值。如果安装成系统服务成功之后,会提示成功了
4、启动系统服务 net start Subversion(注:Subversion是上一个命令中的服务名称)
删除创建的服务 C:\>sc delete svnservice
5、创建svn跟目录(方便快速查找svn目录,需要doc下面不关闭才行,所以也可不要)
svnserve.exe --daemon --root E:\svnRepos(路径为svn仓库路径)
//--daemon(两个短横线)选项告诉 svnserve 以守护进程方式运行
//--root选项设置根位置来限制服务器的访问目录,从而增加安全性和节约输入svnserve URL的时间
6、svnadmin create E:\svnRepos\test(创建svn仓库)
7、用户权限配置
在每个仓库下:有一个conf文件夹,下面有三个文件
svnserve.conf (svn配置文件)
authz (授权)
passwd (认证)
1)先配置svn配置文件----- svnserve.conf
#匿名访问的权限,可以是read,write,none,默认为read anon-access = none #认证用户的权限,可以是read,write,none,默认为write auth-access = write #用户密码的路径,去掉前面的# password-db = passwd #权限的路径,去掉前面的# auth-db = authz
(注:所有的配置文件都必须行置顶,也就是说当前行最前面不能有空格)
2)再配置认证文件------- passwd
[users]# harry = harryssecret# sally = sallyssecret# 用户名 = 密码xiaoqiang = 111xiaoming = 222xiaozi = 333
3)配置授权文件-------- authz
[groups]group1=人员A,人员Bgroup2=人员C[仓库名:/]@group1 = rw@group2 = r* = r #配置好所有用户有读的权限,才能查看得到用户自己提交的日志
8、在服务器上安装tortoiseSVN(如果安装的svn server 包含客户端的 这一步可以跳过)
对于提交的文件,svn有自己的一套保存方式,所以当本地提交到svn服务器的时候,服务器版本库里看不到提交的文件,这个时候需要在服务器上安装安装tortoiseSVN,在网站根目录检出,才能看到提交的文件
9、实现服务器环境自动更新:
(通过设置hook(插件)来自动更新在本地的每次提交,而不需要本地的每次提交都要在服务器上面手动update)
1)、将hook下面的post-commit.tmpl文件复制一份,修改后缀为.bat文件,再将一下内容拷贝进去
@echo offSET REPOS="$1"SET REV="$2"SET TXN_NAME="$3"SET DIR=%REPOS%/hooksSET PATH=%PATH%SET WORK=D:/WWW/truckwebsvn update %WORK% --username cntplus --password cntplus
D:/www/truckweb是当前代码库的根目录,之后在配置好账号密码即可(代码中cntplus是账号和密码)。
10、限制必须输入日志
在hook目录下添加pre-commit.bat,内容如下
SET REPOS=%1SET TXN=%2svnlook log -t "%TXN%" "%REPOS%" | findstr ".........." > nulif %errorlevel% gtr 0 goto errexit 0:errecho 日志必须输入,且长度不得小于10个字符。 1>&2exit 1
注意:findstr "......" 里面的每个.就代表一个字符。如果(findstr "...")必须要输入三个以上的字符
在windows服务器上安装subversion