svn软件下载地址
http://subversion.apache.org/packages.html
在安装TortoiseSVN时安装客户端和服务端php
下以svn在windows下使用为例,linux上相似html
一:svn使用
1.建立多个svn仓库
svnadmin create E:/svnServer/web
svnadmin create E:/svnServer/otjava
2.启动仓库服务
svnserve -d(独立端口运行) -r(仓库地址)
svnserve -d -r E:/svnServer/web //启动web仓库服务
svn服务走svn协议,端口号码是3690
E:/svnLocal/hkui>svn co svn://127.0.0.1
svn co --username 用户名 --password 密码 svn://127.0.0.1/weblinux
3.使用svn服务
在E:/svnLocal/hkui下新建 a.php
添加到svn仓库:svn add 文件或者目录(多个文件或目录以空格隔开便可)
svn add E:/svnLocal/hkui/a.php
提交到远程仓库
svn ci 文件路径 -m "注释内容" (不想写注释内容就 -m --force-log)
svn commit E:/svnLocal/hkui/a.php -m "第一个文件"
更新
svn update --username 用户名 --password 密码 --force --no-auth-cache 目标目录 (钩子可利用此同步仓库)web
4.开启仓库匿名帐号权限
在操做仓库的conf/svnserve.conf里配置匿名帐号的权限
anon-access = write
无需重启服务便可
日志:db/revprops 下
内容:db/revs 下apache
5.运行多个仓库服务windows
把全部仓库的上级目录当成服务启动起来
更换仓库地址 删除.svn 从新check outcentos
6.svn冲突
在不一样地方修改 update下来后合并
在相同的地方修改,调整代码,删除冲突的其它三个文件 再提交便可缓存
7.帐号和权限
一:给具体用户设置权限
在conf/svnserve.conf 中开启
password-db和authz-db = authz
在passwd中添加用户和密码
hkui=hkui123
tom=tom123
在authz里配置相应权限
配置完passwd后必须给相应的用户在authz里配置权限
给指定的仓库帐号设置权限
仓库有种类型设置
1.启动运行多个仓库服务
svnserve -d -r E:/svnServer (svnServer下有web和ot两个仓库)
[web:/] 表示要给多个仓库的web仓库配置访问权限
[ot:/] 固然是在ot仓库的配置文件里配置 权限
2.运行启动单一仓库服务 svnserve -d -r E:/svnServer/web
[/] 表示给单一的仓库设置访问权限
*= 表示其它用户没有操做权限
r只能update rw能update和commit
好比这里是 运行多个仓库服务的
hkui可以读写,tom只能读,其它用户无任何权限
[web:/]
hkui=rw
tom=r
*=
二:给一个组别设置权限
再在passwd中添加
php=php123
js=js123
java=java123
在authz里
[groups]
language=php,js,java #表示同属一个组
[web:/]
hkui=rw
tom=r
@language=rw #表示language组的权限是rw
*=
三:开启只操做某个目录的权限
好比web目录下的Video
1.管理员建立video目录,提交到svn仓库
2.给外部团队设置帐号和设置工做目录,和其分支目录权限
passwd中
[users]
hkui=hkui123
tom=tom123
php=php123
js=js123
java=java123ide
w1=w123
w2=w223
w3=w323
authz中
[groups]
language=php,js,java
w=w1,w2,w3
[web:/]
hkui=rw
tom=r
@language=rw
*=
[web:/video]
@w=rw
*= (若是设置该项 ,只有w组的成员能操做video目录,管理员也不能够)
3.外部团队创建与仓库的联系 (checkout)
svn co svn://127.0.0.1/web/video (只有权限和video联系)
4.外部团队 操做文件并提交到仓库
5.管理员更新便可
四:设置开机启动项服务
sc create svnd binPath= "D:/install/TortoiseSVN/192/bin/svnserve.exe -r E:/svnServer --service" start= auto
删除服务
sc delete svnd
五:查看工做日志
开启帐号并配置权限后注意把svnserve.conf里的
anon-access = write改成anon-access = none而不是注释
修改完记得先清空缓存
钩子
在windows下为post-commit.bat
在Linux下post-commit 记得给可执行权限便可
export LANG=en_US.UTF-8
/usr/bin/svn update --username ybjmobile --password 123456 /alidata/www/mobile
svn update --username 用户名 --password 密码 目标目录
------------------------------------------
在centos下查看svn服务
ps aux|grep svn
[root@localhost web]# ps aux|grep svnroot 3243 0.0 0.0 174512 1012 ? Ss 21:35 0:00 svnserve -d -r /var/www/svn_dbroot 5623 0.0 0.0 103320 864 pts/1 S+ 22:13 0:00 grep svn