svn服务器搭建 安装
svn服务器搭建 安装
上个月帮朋友公司迁移代码仓库,搭建他们还在用U盘拷贝代码,安装版本冲突时直接拿文件名后缀“final_v3”硬扛。搭建我实在看不下去,安装花了半小时帮他们搭了个SVN服务器。搭建其实整个过程比想象中简单,安装核心就三步:装软件、搭建建仓库、安装配权限。搭建
选型:别纠结,安装用VisualSVN Server
Linux上你可以折腾subversion+apache,搭建但Windows环境我强烈建议直接用VisualSVN Server。安装这玩意儿是搭建图形界面,装完自带Apache服务,安装连配置文件的搭建路径都帮你写好了。官方下载免费版就够用,社区版限制5个用户?那是老黄历了,现在免费版不限用户数,只是少了些AD域集成功能。
安装时有个坑——端口默认选8443,别改成80。我一开始图省事改80端口,结果跟本机IIS冲突,服务死活起不来。老老实实用8443,访问地址就是https://服务器IP:8443/svn/,浏览器打开能看到仓库列表就行。
建仓库:一条命令的事
打开VisualSVN Server Manager,右键“Repositories”选“Create New Repository”。命名用项目代号,比如“crm-system”,别起“测试仓库”这种名字。文件系统选“FSFS”,别碰“BDB”,后者崩溃恢复能把人逼疯。
命令行党也可以用svnadmin命令:
svnadmin create D:\Repositories\crm-system 注意仓库目录别放系统盘C盘,日志文件增长很快,我见过一个中型项目半年日志吃掉20GB。放D盘或单独数据盘,后续备份也省事。
权限配置:别用匿名访问
很多教程让你勾选“Allow anonymous access”,千万别学。匿名访问意味着谁都能看代码,出事甩锅都找不到人。右键仓库选“Properties”,Security选项卡里把匿名访问关掉,然后添加用户。
用户密码默认存本地,我一般给每个开发建独立账号。权限分配遵循最小化原则——普通开发给“Read/Write”,项目经理加“Add”权限(能创建分支标签),只有负责人给“Full Control”。曾经有个外包公司,把所有程序员都设成Full Control,结果有人误删了整个trunk目录,恢复花了两天。
钩子脚本:防呆设计
仓库建好别急着用,写两个钩子脚本能省很多麻烦。在仓库的hooks目录下,把pre-commit.tmpl重命名为pre-commit.bat,写入这段代码:
svnlook log -t %2 %1 | findstr /r "[a-zA-Z0-9]" > nul if errorlevel 1 ( echo 提交信息不能为空!>&2 exit 1 ) 这段脚本强制提交时必须写注释。没写注释的提交会被直接拒绝,提示“提交信息不能为空”。别小看这个,之前团队里有人提交记录全是空白,三个月后回滚版本根本不知道哪个提交对应哪个功能。
另外加个post-commit钩子,提交后自动发邮件通知。VisualSVN自带邮件通知功能,Properties里勾选“Send email notification”就行,别自己写脚本调SMTP,折腾半天还可能被当成垃圾邮件。
日常维护:备份和迁移
备份用svnadmin hotcopy,比直接复制目录安全得多。Windows计划任务里写个批处理:
svnadmin hotcopy D:\Repositories\crm-system D:\Backup\crm-%date:~0,4%%date:~5,2%%date:~8,2% 每天凌晨跑一次,保留最近7天备份。别问我为什么强调备份——上次机房断电,没备份的仓库直接损坏,svnadmin recover都救不回来,开发团队一周的工作白干。
迁移服务器更简单,新机器装好VisualSVN,把仓库目录整个拷过去,然后在Manager里“Add Existing Repository”指向新路径。记得改客户端地址,不然同事还连旧服务器。
搭完这套,朋友公司再没人用U盘传代码了。版本冲突从“谁最后保存谁倒霉”变成SVN自动合并,出问题也能精准回滚。整个搭建过程不到一小时,但省下的时间远超这个数——这才是工具该有的样子。
本文地址:http://www.79wt.cn/news/1860f0299811.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。