您当前的位置: 首页 > 学无止境 > 网站建设 网站首页网站建设
svn搭建完全流程详解
发布时间:2016-09-16 16:42:17编辑:雪饮阅读()
svn是什么?
svn是版本控制器,svn是增量备份,svn是协同开发。
svn协同开发工作流程:

传统开发与svn开发:

svn分为服务端与客户端与ftp类似:
服务端:VisualSVN-server-2.7.7.msi
客户端:TortoiseSVN-1.8.10.26129-x64-svn-1.8.11.msi(分32位和64位,此为64位)
LanguagePack_1.8.10.26129-x64-zh_CN.msi(客户端对应的汉化包)
svn服务端的安装:



端口号建议使用8000以后的。
配置版本仓库:
在svn服务端创建一个公共目录(webapp)作为总仓库存放目录,在该目录下创建一个shop目录作为shop项目的svn仓库存储目录。
命令行下创建shop项目的svn仓库:
svnadmin create C:/svn/webapp/shop(若环境变量没有集成到系统中,就需要进入svn的bin文件夹中执行该dos命令)
shop仓库创建成功后,回到方才所建立的shop文件夹中会发现多出以下文件:

svn服务器监管:
svn服务器监管可使得通过浏览器访问localhost进入svn,与apache不同的是协议为svn而非http。如:
apache访问示例:http://localhost
svn访问示例:svn://localhost
svn服务器监管语法:
svnserve -d -r C:/svn/webapp/shop
-d:后台运行
-r:监管仓库目录
监管命令执行后,dos窗口中的光标一直闪烁代表监管成功。此时不能关闭该dos窗口,关闭窗口则监管也会同时关闭。
监管后我们便可以通过svn://localhost(或ip地址)就直接指向了shop版本仓库
默认情况下,匿名用户是不被允许上传文件到svn服务器的,所以我们需要配置下svn权限(在shop下的conf文件夹中的svnserve.conf):
找到anon-access字段将其前注释符取消并更改其值为write。

注意:键后的等号后面需要空格然后才能写值(语法)
安装svn客户端软件,安装后继续安装汉化包,汉化包安装后再svn客户端的选项中可找到中文语言选项,想用中文版的可以直接切换。
注意:有人说svn安装完毕后要重启你的机器。(雪饮没有重启,貌似也没有什么事情)
检出:
汉化后再鼠标右键TortoiseSVN->版本库浏览器输入url即可进入svn仓库:


注意:如果你访问后发现此处空空如也,那么请仔细观察是否有向左缩进去的选项卡,如果有,就将其拉开。
打开你的系统中显示隐藏文件的选项后你会发现检出成功后再你的当前目录下生成一个隐藏的“.svn”

注意:若你所在当前目录不为空,那么将会生成你一个文件夹,文件夹名称为你的当前所检出的域名,然后这个文件夹下才是你所检出的所有文件。
提交:

上传备注信息虽然没有强制要求要填写,但是为了更好的协同开发考量,最好将备注信息填写。
协同开发冲突:
上班时间:9:00
旺财:9:30提交index.php
小强:10:00提交index.php
冲突的解决:
小强更新svn数据到本地:

1、整合后的index.php
2、小强修改后的index.php
3、小强和旺财都没有修改前的index.php
4、旺财修改后的index.php
删除除index.php以外的三个文件,修改整合的index.php
重新提交即可。
多仓库监管:
svnserve -d -r C:/svn/webapp
访问url示例:
svn://localhost/shop
权限控制(非匿名):
匿名情况下使用svn很危险,需要配置svn用户权限
在仓库目录(shop)下的conf中找到svnserve.conf注释匿名用户的可读写权限:

开启认证文件与授权文件:

配置svn用户名及密码,在同目录下的passwd文件中

同目录下编写授权文件auth(一定要是auth文件,别被默认的authz文件给糊弄了):

每个用户组的多个用户可以用“,”分隔
shop为项目目录,@为用户组,*为匿名用户,后面的rw为权限
授权成功后在未授权用户操作权限下执行需要授权的权限操作时就需要键入登录身份信息:

配置监管自启动:
sc create SVNService binPath= "C:\svn\bin\svnserve.exe --service -r C:/svn/webapp" start= auto
dos命令运行
开启成功后:

开启成功自启动后,就不需要继续让dos窗口最小化在哪里监管了,完全可以将其关闭了。
注意:首次貌似不会自己启动,下次开机时会自动启动
设置自启动需要注意,系统中非必要性程序尽量不要开启,负责有可能占用端口等情况导致自启动创建失败
环境变量路径用户“\”,非环境变量路径用"/"
创建批处理文件(.bat)以方便svn的快捷操作:
建立bat文件,文件中输入svn相关命令如:

svn服务的启动、停止与删除:
net start SVNService 启动
net stop SVNService 停止
sc delete SVNService删除
利用钩子程序实现svn同步程序到web服务器:
默认情况下钩子程序模板子啊项目仓库下的hooks中

post-commit.tmpl:提交事件所触发的钩子程序
复制对应钩子模版并创建bat批处理文件:

然后每次开发者只要提交了新数据就会自动同步到web服务器,但仅限提交hooks事件才同步
注意:
(1)svn自动提交脚本只有在web服务器目录有检出的前提才能执行成功
svn服务端+客户端+汉化包:VisualSVN-Server-2.7.7.msi+TortoiseSVN-1.8.10.26129-x64-svn-1.8.11.msi+LanguagePack_1.8.10.26129-x64-zh_CN.msi
(2)监听某仓库的父级目录后访问某子级仓库可以不用再路径中添加子级路径
监听:
svnserve -d -r D:/svn/webapp
url:
全局(webapp)监听后访问子路径不需要添加其父路径,如webapp>itme1访问如:
svn://localhost/item1
(3)
创建一键配置启动服务
sc create svnservice binPath= "D:\svn\bin\svnserve.exe --service -r D:\svn\webapp" start= auto
删除一键配置的启动服务
sc delete svnservice
链接:http://pan.baidu.com/s/1slzolgp 密码:cvp6
关键字词:svn,搭建