家小业小,也没那么多linux服务器来做svn服务,但是平常开发的的时候有些代码需要使用svn来保管,作为备份、查看代码修改记录、记录修改日志等等。所以很屌丝的在自己的win7上搭建了svn服务。
win7上搭建服务要稍微简单一点,毕竟可视化操作还是非常人性化的。
1.我使用的svnserver版本为Subversion-1.6.16,虽然我的操作系统是64位的,但是Subversion我还没找到64位的,所以使用的还是32位的(注:64位操作系统基本兼容32位软件),安装路径,我选择的是E:\program-files\Subversion
2.安装svn客户端TortoiseSvn,版本与Subversion对应,TortoiseSVN-1.6.15.21042-win32-svn-1.6.16.msi
,这里安装路径不是很重要,我选择的是E:\program-files\TortoiseSvn
ps:这里给刚开始使用svn的同学解释一下,Subversion是svn的服务端,而TortoiseSvn代表的是svn的客户端,一般来说这种C/S结构,两端版本最好下载一致的,不然可能带来一些未知的冲突。
3.建立Subvserion仓库,我选择在F盘新建文件夹svn-repository,右键该文件夹,[TortoiseSvn]->[Create Repository here],使用默认配置即可。创建了之后,svn-repository会变成svn的一个仓库(repository),里面生成若干文件夹,conf文件夹里面放置用来管理该仓库的权限配置,db目录是该仓库的数据文件,hooks目录放置hook脚本文件的目录;locks用来放置Subversion文件库锁定数据的目录, 用来追踪存取文件库的客户端;format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
4.设置权限,打开conf目录,看见三个文件svnserve、authz、passwd
svnserver打开可以看到,内容挺多的,不过大多数我们现在并不能用到
只看[general]这一栏
anon-access = read #没有通过权限验证的同学,只有读的权限
auth-access = write #通过验证的同学拥有写权限(写包括了读权限)
password-db = passwd #用户名密码存储的文件名
authz-db = My First Repository #看样子是某种欢迎信息吧,没管它
passwd文件:
[users]这一栏很简单
xudong=xudongpwd 用户名=密码
authz这个文件配置有两个比较重要
[groups]这一栏是分组信息,可以参考linux的用户组概念,把某一类用户集中分配权限
admin=xudong #把用户xudong分配到admin组里面
接下来这一栏是给各个仓库分配权限
比如我刚才新建了仓库svn-repository,按理说分配权限的时候应该为这个目录分配的,比如
[F:/svn-repository]
@admin=write
但是由于启动svn服务时,我一般会指定仓库地址,所以这里其实只有一个库了,那再制定仓库地址就会出现问题了,所以只需要制定根目录就好了
[F:/svn-repository]
@admin=write #admin组具有读写权限
#xudong=write 也可以这样手动指定某个用户,注意不加@号
*=read #除了在admin的其他人员只有读取权限
5.到这里,前期的工作就做完了,可以启动服务,由于svn都是作为后台服务(个人理解类似linux的守护进程),需要使用SC命令创建服务子键(不懂),以及在注册表注册该服务,创建文本Subversion.txt,输入:
sc create svnserve binpath= "E:\program-files\Subversion\bin\svnserve.exe --service -r F:\svn-repository" depend= Tcpip start= auto
sc start svnserve
pause
注意,这里命令是三行,参数应该可以从字面意思意会。
将该脚本另存为“所有文件”,后缀名为.bat(bat是windows批处理的脚本,赶脚跟shell很像),直接运行该bat,如果提示没有权限的话,可以右键->以管理员身份运行。为了确认svn服务已经开始运行,可以在控制面板(大图标)->管理工具->服务中看看是否有该服务(这里服务名称叫svnserve),并且状态为“已启动”,启动类型为“自动”开机可自运行。
现在就可以访问该仓库啦,由于仓库是新建的,内容还是空的,可以在自己本地已经建好的项目上,右键,import到127.0.0.1/your-project-name。