安装svn测试环境
centos 6.5 web service模式 安装svn测试服务器
1 下载subversion
shell>yum install subversion
2 查看安装的版本
[root@cuijian /]# svn --version
3 建立一个项目的版本库
[root@cuijian /]# svnadmin create /var/svndata/zmqnw_mobile
4 导入项目文件
[root@cuijian conf]# export EDITOR=vi
[root@cuijian conf]# svn import /home/www/zmqnw_mobile file:///var/svndata/zmqnw_mobile -m 'import'
日志信息未修改,或未指定
a)终止,c)继续,e)编辑:
5 配置项目文件
[root@localhost conf]# vi passwd
加入下面的行:
cuijian = xxxxx
zhixiaofei = xxxxx
[root@localhost conf]# vi svnserve.conf
改动如下:
anon-access = none
auth-access = write
password-db = passwd
[root@cuijian hooks]# vi post-commit --配置钩子文件,自动提交
加入:
#!/bin/sh
export LANG=en_US.UTF-8
#以www身份更新工作副本
su - www -c
"svn up /home/www/zmqnw_mobile --accept theirs-full"
#svn up /home/www/zmqnw_mobile --accept=theirs-full
svn up 解决冲突-命令详解:
第一种,利用update的选项进行冲突解决,也就是说不管当前拷贝副本是否是最新版本,都使用—accept参数作为冲突处理方式
--accept ARG : specify automatic conflict resolution action
('postpone', 'base', 'mine-conflict',
'theirs-conflict', 'mine-full', 'theirs-full',
'edit', 'launch')
(p) postpone - mark the conflict to be resolved later //让文件在更新完成之后保持冲突状态。
(df) diff-full - show all changes made to merged file //使用标准区别格式显示base修订版本和冲突文件本身的区别。
(e) edit - change merged file in an editor //用你喜欢的编辑器打开冲突的文件,编辑器是环境变量EDITOR设置的。
(r) resolved - accept merged version of file //完成文件编辑之后,通知svn你已经解决了文件的冲突,它必须接受当前的内容—从本质上讲就是你已经“解决了”冲突。
(mf) mine-full - accept my version of entire file (ignore their change//丢弃新从服务器接收的变更,并只使用你查看文件的本地修改。
(tf) theirs-full - accept their version of entire file (lose my changes)//丢弃你对查看文件的本地修改,只使用从服务器新接收的变更。
(l) launch - launch external tool to resolve conflict//启动一个外置程序来执行冲突解决,这需要一些预先的准备。
(h) help - show this list //显示所有在冲突解决时可能使用的命令。
[root@cuijian hooks]# chmod a+x post-commit
6 导出项目 到测试安装目录
[root@cuijian www]# svn checkout file:///var/svndata/zmqnw_mobile /home/www/zmqnw_mobile
7把svn守护进程开启
[root@cuijian www]# svnserve -d -r /var/svndata
或者 svnserve -d -r /home/work/repo --listen-port 8099
客户端输入如下,便可开启:
svn://192.168.0.61/zmqnw_mobile
8 如何做到不同目录文件,放到一个svn里
在项目里放一个build.sh, 如下:
#!/bin/sh #在当前目录执行 sh build.sh,然后将该文件拷贝至 odp 根目录。解压即可,tar -zxvf law.tar.gz PRODUCT_NAME="lvshi" APP_NAME="law" rm -rf output mkdir -p output/app/$APP_NAME mkdir -p output/conf/app mkdir -p output/webroot/$APP_NAME mkdir -p output/template mkdir -p output/php/phplib/$PRODUCT_NAME/api/$APP_NAME cp -r actions controllers library models script Bootstrap.php output/app/$APP_NAME cp -r conf/* output/conf/ cp -r index.php output/webroot/$APP_NAME cp -r api/* output/php/phplib/$PRODUCT_NAME/api/$APP_NAME cp -r template/* output/template cp -r static output/webroot/ cp -r webserver output/ cd output find ./ -name .svn -exec rm -rf {} \; tar cvzf law.tar.gz app conf webroot php template rm -rf app conf webroot php template
钩子文件post-comit修改如下:
#!/bin/sh # 1 更新项目文件 /home/bae/.jumbo/bin/svn up /home/bae/xxxx/app/law --accept=theirs-full # 2 打包 cd /home/bae/xxxx/app/law sh build.sh # 3 分发项目文件 cd /home/bae/xxxx/ mv /home/bae/xxxx/app/law/output/law.tar.gz /home/bae/xxxx/law.tar.gz tar -zxvf law.tar.gz rm law.tar.gz