服务器安装Setup-Subversion-1.7.7 安装路径:D:\Subversion
在D:\根目录新建SVN目录做为svn的版本库目录。
接着,在D:\SVN\目录下新建一个项目bobo目录。然后,在该目录上右键,选择:TortoiseSVN -> 在此创建版本库,点击“确定”(注意:不要创建目录结构-理由:由于本人对SVN不了解,经过测试,如果创建了目录结构,那么同步到客户端的项目文件中就会多出三个目录:branches、tags、trunk,目前本人尚未掌握这个功能用法,因此,为了保持同步下来的内容清洁,在此不创建目录结构。)
接下来,开启服务端:
错误开启方法:
svnserve -d -r D:\svn\bobo
正确开启方式:
svnserve -d -r D:\svn
由于认证失败,在网上找了很长一段时间的相关内容,都无法解决。经验尝试终于解决问题:
svnserve.conf内容配置:
[general] anon-access = read auth-access = write password-db = passwd #authz-db = authz realm = My First Repository注意上面我注释了#authz-db = zuthz 这项。如果去掉注释,则必会出现认证失败这一项。
如果其它文件未动,那么,你可以浏览版本库了,浏览地址是:svn://服务器IP/bobo
但是随后发现,没有出现帐号密码,这样就不太安全。
关于svnserve.conf的内容配置来源:SVN 认证失败
解决办法是:
passwd文件内容:
[users] # harry = harryssecret # sally = sallyssecret admin = admin test = test格式是:帐号 = 密码 一个用户为一行
接着:将svnserver.conf的内容中:
anon-access = read 改为 anon-access = none 即可。
总结:
一、配置
[general] anon-access = none #使非授权用户无法访问 如果该值为read,则非授权用户可读。这就为什么不用输入帐号密码就可访问的原因了 auth-access = write #使授权用户有写权限 password-db = passwd #指明密码文件路径 #authz-db = authz #访问控制文件 realm = My First Repository
启动服务 执行svnserve -d -r svn服务根目录
svnserve指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。
使用以下命令检出 svn checkout svn://127.0.0.1/dir 。IP需要根据具体情况调整,dir为版本库路径,若在启动时已指定则可省略。
版本库信息在版本库文件夹里,所以要删除版本库只需要删除版本库所在的文件夹即可。 另外工作副本只是自己维护的文件夹,可以用Windows直接删掉,对别人没有影响。千万不要使用版本库的删除命令,否则版本库里的内容也会被删除。
三、上面我说了,如果去掉authz-db = zuthz前面的#号,必然认证失败。我在这要纠正一下。无知者无畏啊。经过测试,顺利通过认证
1、将上面的authz-db = authz 前面的 # 号去掉
2、修改authz文件
[aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups] harry_and_sally = admin,sally # 这里我采用分组形式。因为是团队合作,所以有多个人 # harry_sally_and_joe = harry,sally,&joe # [/foo/bar] # harry = rw # &joe = r # * = [bobo:/] #对bobo仓库授权 @harry_and_sally = rw #r 表示读 w 表示写 # * = r # * 通配符,表示所有人,如果去掉前面#号,表示任何人可访问(只读访问,不可写)——注意:经测试,去掉#后,仍需要验证。
[aliases] # joe = /C=XZ/ST=Dessert/L=Snake City/O=Snake Oil, Ltd./OU=Research Institute/CN=Joe Average [groups] # harry_and_sally = zm2714,sally # harry_sally_and_joe = harry,sally,&joe [bobo:/] admin = rw # &joe = r #* =r #[bobo:/] #@harry_and_sally = rw # * = r
subversion服务器作为服务启动
subversion服务器支持windows和linux。
在linux下,使用命令启动服务:
svnserve -d -r /svnroot
-d 表示--daemon,即关掉执行命令的窗口,服务继续存在。 -r 表示--root,即指定库的根目录。
而在windows下,用同样的命令也可以,只是关掉cmd窗口后,服务也消失了。这个问题的解决办法,在subversion的1.4版以前,是用svn windows service wrapper,将其包装为服务。而svn1.4以后,是可以直接支持以服务器启动的。方法就是利用windows xp,2000自带的工具service control,执行文件是sc.exe。
注意:要想使用"sc"命令必须安装Windows 2000/2003 Resource Kit(资源工具包),否则使用该命令无效。
在cmd窗口输入命令如下:
sc create svnservice binpath= "D:/Program Files/Subversion/bin/svnserve.exe --service -r D:/mysvn" displayname= "SVNService" depend= Tcpip start= autobinpath指定svnserve的路径和命令。注意其参数是--service,而不是--daemon. 不能用-d和-i,-t等参数。
start= auto表示服务自动启动。注意,等于号的左边无空格,而右边必须有一个空格
displayname="SVNService" 表示注册服务的名字。
执行完后,系统返回
[SC] CreateService SUCCESS
表示服务创建成功。
启动服务命令:
net start svnservice停止服务命令:
net stop svnservice删除服务命令:
sc delete svnservice
将以下内容保存为批处理文件,执行后,自动将SVN服务器最新版本同步到WORKING_COPY目录
@echo off SET PATH=%PATH%; SET WORKING_COPY=D:\web\iframe_firstYii svn update %WORKING_COPY% --username xxx --password xxxx