svn搭建以及可能遇到的问题解决方案
Svn服务器的安装和配置
1.安装svn服务器端软件
从镜像服务器或者YUM源下载安装SVN服务器软件:yum install subversion
mkdir /usr/local/svn //创建SVN安装目录
chmod -R 777 svn //修改目录权限为777
svnadmin create /usr/local/svn/sunny //创建一个SVN版本仓库sunny(sunny可以自定义)
cd /usr/local/svn/sunny/conf //进入sunny版本仓库下的配置文件目录
下面要修改这个目录下的三个配置文件
(1)vi svnserve.conf //配置版本库信息和用户文件和用户密码文件的路径、版本库路径,把
# anon-access = read
# auth-access = write
# password-db = passwd
//这四行,前面的#号和空格去掉(注意去掉#要顶格写,不要留有多余空格),变成
anon-access = none //匿名访问,改成none
auth-access = write
password-db = passwd
realm = sunny //改成自己的版本库名称
保存退出
(2)vi authz //文件,创建SVN组和组用户的权限
[groups]
sunny = gep,wce //创建一个sunny的组,并指定两个用户gep和wce
[/] //制定根目录下的权限
@sunny = rw //sunny组用户权限为读写
* = r //其他用户只有读权限
保存退出
(3) vi passwd //创建或修改用户密码
[users]
gep = 123456 //用户名为gep的用户的密码为123456
wce = 123456 //。。。
保存退出
启动SVN服务器:
//这里采用多版本库的方式启动
svnserve -d -r /usr/local/svn/
如果是单版本库可以添加一行
svnserve -d -r /usr/local/svn/sunny
然后要设置自启动
vi /etc/rc.local 打开自启动文件添加
/usr/bin/svnserve -d -r /usr/local/svn/
到此为止可以从服务端检出文件了.
svn命令:
netstat -tnl |grep :3690 查看svn是否启动
安装成功!
ps aux |grep svn 查找所有svn启动的进程
kill -9 2505 杀死2505这个查找到的svn进程
svn checkout svn://172.19.5.2/sunny /data0/htdocs/blog //检出一份版本库文件到指定目录
svn up //更新文件
自动更新
在vi /usr/local/svn/sunny/hooks/post-commit中加入
#!/bin/sh
#设置一些变量
SVN=/usr/bin/svn
WEB=/home/testsvn #要更新的目录
export LANG=en_US.UTF-8
$SVN update $WEB --username xxx --password xxx
其中SVN=右边改成 svn 命令位置 一般默认为/usr/bin/svn
WEB=右边改成你实际的web目录
赋予可执行权限
chmod 777 /usr/local/svn/sunny/hooks/post-commit
安装完毕
出现启动svn显示报错(已启动)情况或者当项目的时候出问题解决:
cd etc
cd sysconfig
vim iptables(仿照句子写一句3690的端口号的句子)
重启防火墙service iptables restart
最后我要着重描述一下svn自动更新的问题:
2.vim post-commit 加入如下代码:
#!/bin/sh
export LANG=zh_CN.UTF-8
SVN=/usr/bin/svn // 你去 cd 一下看看你服务器有没有这个路径
WEB=/procject/w-project 这个是你项目路径
$SVN update $WEB --username svn{用户名} --password svn{密码} //这里面的这个{}是不需要的 相当于注释符号
wq 保存
重启svn
测试
svnserve -d -r /usr/local/svn/ 这样是启动svn下所有的版本库的
最新文章
- Ubuntu使用MyEclipse闪退的解决办法
- Android学习计划
- android学习笔记57——电话管理器TelephoneyManager
- Type mismatch: cannot convert from java.sql.PreparedStatement to com.mysql.jdbc.PreparedStatement
- .NET序列化的一点技巧(附Demo)
- POJ - 1666 Candy Sharing Game
- Java中long和Long有什么区别 (转载)
- Solr分页与高亮(使用SolrNet实现)
- ACM第二站————归并排序
- Javascript中函数调用和this的关系
- My Answer in Regex Golf
- Linux日志每日备份脚本
- VMware下liunx虚拟机仅主机模式上网
- GoldenGate BR(bounded Recovery)简单说明
- POJ-2387.Til the Cows Come Home.(五种方法:Dijkstra + Dijkstra堆优化 + Bellman-Ford + SPFA + Floyd-Warshall)
- 查询Oracle 临时表空间使用情况[z]
- suse下修改主机名
- [leetcode]Interleaving String @ Python
- #define中 #与##的神奇用法
- “全栈2019”Java第六十二章:接口与常量详解
热门文章
- Java基础——数组应用之StringBuilder类和StringBuffer类
- 用仿ActionScript的语法来编写html5——第七篇,自定义按钮
- java web工程读取及修改配置文件
- MSBUID相关(笔记)
- 生成arff文件,csv转为arff
- jsp中${param.user}不解析,原样输出。
- devexpress13学习系列(三)PDFViewer(3)
- Lintcode: Sort Letters by Case
- 趣谈PHP 多态
- [Reprint]c++中typename和class的区别介绍