安装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

  

posted @ 2014-09-09 17:10  thrillerz  阅读(967)  评论(0编辑  收藏  举报