Linux下创建svn库 和 svn安装与操作

1.介绍

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。适合中小公司的开发人员不多的项目使用,相比git管理工具更简单.

2.安装svn

++2.1 国际惯例 首先看看系统有没安装++

bash 复制代码
rpm -qa | grep subversion

如果有

bash 复制代码
rpm -e subversion-1.4.2-4.el5_3.1

++2.2 就用yum安装就行了++

bash 复制代码
yum -y install subversion
bash 复制代码
cd /etc/rc.d/init.d
ll | grep 'svn' 
-rwxr-xr-x 1 root root  2243 Feb 12  2014 svnserve

已经安装到系统服务了,安装成功

++2.3 建立版本库目录++

bash 复制代码
mkdir /www/svndata
svnserve -d -r /www/svndata --listen-port 63790

-d 表示svnserve.exe 将会作为一个服务程序运行在后台

-r表示把/www/svndata目录作为根目录

创建一个项目

bash 复制代码
svnadmin create /www/svndata/website

配置允许用户web访问

bash 复制代码
cd /www/svndata/website/conf
bash 复制代码
vi svnserve.conf
复制代码
anon-access=none
复制代码
auth-access=write
复制代码
password-db=passwd
bash 复制代码
vi passwd
bash 复制代码
[users]
#<用户1> = <密码1>
#<用户2> = <密码2>
#例如

web=123456

#修改的文件前面不能有空格,否则启动svn server出错

重启svn

bash 复制代码
killall svnserve 
svnserve -d -r /www/svndata

3.一些操作

++3.1 checkout一份SVN++

bash 复制代码
svn co svn://192.168.133.130/www/svndata/website  myweb  

svn://192.168.133.130/www/svndata/website svn的地址

myweb 自定义的项目名字

如果弹出 。。。not found之类的信息,导出地址改为

bash 复制代码
svn co svn://192.168.133.130/website  myweb

++3.2 更新和提交版本++

bash 复制代码
svn update
svn commit  -m  "20180115"
svn  add  test.php

++3.3 查看日志 显示这个文件的所有修改记录,及其版本号的变化++

bash 复制代码
svn info index.php

++3.4 比较差异++

bash 复制代码
svn diff   path(将修改的文件与基础版本比较)

4.可能会碰到的问题

4.1 Starting svnserve: svnserve: Can't bind server socket: Address already in useFAILED

解决方法:

bash 复制代码
killall svnserve

5. 实现SVN与WEB同步,可以CO一个出来,也可以直接配在仓库中

bash 复制代码
cd /var/www/svndata/njlrxx/hooks/

cp post-commit.tmpl post-commit

编辑post-commit,在文件最后添加以下内容

复制代码

bash 复制代码
REPOS="$1"
REV="$2"
BASEPATH=/var/www/webroot/njlrxx
WEBPATH="$BASEPATH/"
export LANG=zh_CN.UTF-8
svn update $WEBPATH --username jiqing --password 123456 --no-auth-cache

增加脚本执行权限

chmod +x post-commit

最后操作是关闭服务然再打开服务:

相关推荐
名字还没想好☜4 小时前
用 systemd 托管后台服务:Restart 策略、日志接管、资源限制与开机自启全踩一遍
运维·docker·kubernetes
乌恩大侠5 小时前
GH200 新增 NVMe SSD 分区、格式化与挂载完整流程
运维·服务器·前端
tangwangbi5 小时前
Linux 系统配置文件:/etc/profile、~/.bashrc 和 ~/.bash_profile 三者之间的区别与作用
linux·运维·bash
蜀道山老天师6 小时前
Shell Bash变量与运算符(含条件测试与流程控制)
linux·运维·bash
Mr.朱鹏6 小时前
Linux 服务器 LVM 根分区在线动态扩容
linux·服务器·数据库
草邦设计开发团队_媒体资源平台6 小时前
GEO 信源整合一键发布软文:从内容生产到流量获客的自动化实践
运维·人工智能·自动化
zhou lily6 小时前
非标自动化管理系统ERP如何选?2026年10大ERP软件对比分析
运维·自动化
mengge.cloud6 小时前
存储技术基础小白教程
linux·运维·服务器·wpf·存储
云贝贝贝7 小时前
腾讯云 TDSQL(MySQL 版)运维高频 6 坑:代理路由、读写分离、分片键、监控、PITR
运维·mysql·腾讯云
小五传输7 小时前
FTP替代怎么做?医院文件安全传输选型与迁移指南
大数据·运维·安全