svn

vn配置详解
适用于开发人员比较少的情况,
由于每次提交都留一个副本,所以svn的数据库的容量会暴增。
不能连接到svn服务器上就不能工作。
开发人员在svn服务器上下载代码。



subversion 官网
subversion.tigris.org
subversion.apache.org

svn客户端:tortoisesvn.net
svn中文网站:www.iusesvn.com
常见问题解答:http://subversion.apache.org/faq.zh.html
官方手册:svnbook.red-bean.com 中英文都要

现在有个问题,svn在windows服务器上,希望开发人员上传后,能同步到Linux的web目录下
所以
方法一:
svn updata /路径        路径是看你放代码的位置
然后保存为.sh文件,放在/root/update.sh,然后cron
* * * * * bash /root/update.sh 每分钟更新次代码

方法二:
post-commit,????






服务端运行方式:
1 独立服务器:svn://ip/test
2 借助apache等http服务 90%的人使用
http://
csvn单独整合软件,带web的svn软件
3本地直接访问
file://

客户端访问:
主要两种
http://
svn://


在服务端配置svn
一般性的功能要求,没有特殊要求,用yum安装方便快捷

rpm -qa subversion                检查有没有安装
yum install -y subversion        
yum后的软件保留,可在无网情况下安装。
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
grep keepcache /etc/yum.conf
keepcache=1           rpm下载后不清除

****************************************

svnserver --help
-d                 守护进程模式
-r                 指定根目录
--pid-file        存放进程号,方便管理
--listen-port    监听端口

配置并启动svn
建立两个目录,数据存储根目录,和用户密码权限目录。
mkdir -p /svndata    数据存储根目录
mkdir -p /svnpasswd    用户和密码权限目录

启动svn
svnserver -d -r /svndata/            指定根目录为/svndata/
ps -ef | grep svn                    查看进程
netstat -lntpu| grep 3690            查看端口
lsof -i :3690                        查看端口

建立项目的版本库,sadoc,用svnadmin命令。
svnadmin create /svndata/sadoc  不能用mkdir,相当于初始化
cd /svndata/sadoc/conf
vi svnserver.conf
anon-access = none                        匿名访问,第十二行。    
auth-access = write                        权限控制
password-db = /svnpasswd/passwd         用户和密码的数据库20
authz-db = /svnpasswd/auth                加密,权限            25
更改svn配置文件需要重启,编辑passwd和auth时不用重启。
查看更改后内容
egrep "\-access|\-db =" svnserver.conf

cd /svndata/sadoc/conf
cp passwd authz /svnpasswd

修改svnpasswd下的auth passwd权限是700
cd /svnpasswd/
chmod 700 *
vi passwd
[users]
stone = stonesecret                        用户名和密码
test = testsecret

vi auth
sagroup = stone, test    分组,管理

[sadoc:/]            项目名和目录
stone = rw
test = r    
@sagroup = r

重启svn
svnserve -d -r /svndata/




在windows上的客户端下载TortoiseSVN

svn客户端连接服务器的方式,账号,密码
svn://10.1.1.1/sadoc        ip为服务器ip
用户名:stone
密码: stonesecret
windows中的svn的checkout
其中checkout directory是下载地址

linux客户端管理
svn --help

将服务器端(svn服务器安装配置的位置)的文件下载到本地服务器上
svn co svn://10.1.1.1/sadoc /svndata/ --username=stone  --password=stonesecret
co 是checkout的简写,提取数据。
svn://10.1.1.1/sadoc是sadoc版本库
svndata 是开发让运维放到目标服务器的目录

查看远程服务器的数据,在Linux客户端查看。
svn ls svn://10.2.2.1/sadoc/  --username=stone --password=stonesecret



钩子,利用pre-commit限制文件的扩展名和大小,提出输入的信息。
然后利用脚本中的rsync执行同步命令,实现其自动更新到文档目录中。
假设有一台站点服务器,站点目录是/data/wwwroot/
先checkout下载来了
svn co svn://10.1.1.1/sadoc /data/wwwroot/    --username=  --password=
cd /svndata/sadoc/hooks
将模板中的.tmp去掉就可以使用
cp post-commit.tmpl post-commit
vi post-commit
#!/bin/bash
PEPOS="$1"
PEV="$2"
export LANG=en_US.UTF-8
LOGPATH="/app/log"
[ ! -d ${LOGPATH}  ] && mkdir ${LOGPATH} -p
SVN=/usr/local/svn
$SVN update --username=stone --password=  /data/wwwroot/
if [ $? -eq 0 ]
    then
        /usr/bin/rsync -az --delete /data/wwwroot/ /tmp
fi


chmod 700 post-commit


此外还有个提前检测的标准
pre-commit



——————————————————————————————————————————
——————————————————————————————————————————

特例:
svn在windows服务器上,开发人员要求把windows客户端修改好的的php文档放到web目录上,
web是一个Linux服务器,

用户名:stone
密码:EGlKQodX
windows服务器svn:    svn://201.16.180.44/panter
开发人员给的目录:    /api/ying/pay.php


svn --username=stone --password=EGlKQodX co svn://210.16.180.24/panter/api/ying/  test

test 是一个目录,下载的pay.php会放到test下,然后在拷贝到其目录下,如果再次下载要更换目录

posted @ 2018-03-29 16:28  风中驻足  阅读(164)  评论(0编辑  收藏  举报