SVN学习笔记一——安装配置
2016-09-01 14:59
639 查看
关于SVN的描述网上已经有很多了,是一个开源代码版本控制系统,也是众多中小公司内部使用的一款基于代码管理的软件,这里摘抄百度百科的两段说明如下。
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
CentOS上安装SVN其实就很简单了,无论是RPM还是yum,这里使用yum安装。
整个安装过程很简单,可以使用shell脚本安装,当然手工执行也可以接受,就不再赘述了。但是,启动SVN之后发现,使用/etc/init.d/svnserve stop关闭SVN服务,虽然命令成功执行了,但是SVN进程依然还在,所以就想创建一个svn的启动关闭脚本来完成,不用每次手工kill进程并启动,脚本内容如下:
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。
CentOS上安装SVN其实就很简单了,无论是RPM还是yum,这里使用yum安装。
rpm -qa subversion yum install subversion -y按照很多教程的说法,把SVN的数据文件和密码权限等文件分开存放。
[root@mylinux ~]# mkdir -p /opt/svndata [root@mylinux ~]# mkdir -p /opt/svnpasswd [root@mylinux ~]# svnserve -d -r /opt/svndata [root@mylinux ~]# ps -ef|grep svn root 1068 1 0 12:14 ? 00:00:00 svnserve -d -r /opt/svndata root 1070 995 0 12:14 pts/0 00:00:00 grep svn [root@mylinux ~]# netstat -lnt|grep 3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN [root@mylinux ~]# svnadmin create /opt/svn svndata/ svnpasswd/ [root@mylinux ~]# svnadmin create /opt/svndata/idc [root@mylinux ~]# tree /opt/svndata/idc/ /opt/svndata/idc/ ├── conf │ ├── authz │ ├── passwd │ └── svnserve.conf ├── db │ ├── current │ ├── format │ ├── fsfs.conf │ ├── fs-type │ ├── min-unpacked-rev │ ├── rep-cache.db │ ├── revprops │ │ └── 0 │ │ └── 0 │ ├── revs │ │ └── 0 │ │ └── 0 │ ├── transactions │ ├── txn-current │ ├── txn-current-lock │ ├── txn-protorevs │ ├── uuid │ └── write-lock ├── format ├── hooks │ ├── post-commit.tmpl │ ├── post-lock.tmpl │ ├── post-revprop-change.tmpl │ ├── post-unlock.tmpl │ ├── pre-commit.tmpl │ ├── pre-lock.tmpl │ ├── pre-revprop-change.tmpl │ ├── pre-unlock.tmpl │ └── start-commit.tmpl ├── locks │ ├── db.lock │ └── db-logs.lock └── README.txt 10 directories, 28 files [root@mylinux ~]# sed -i '/anon-access/s/# //' /opt/svndata/idc/conf/svnserve.conf [root@mylinux ~]# sed -i '/anon-access/s/read/none/' /opt/svndata/idc/conf/svnserve.conf [root@mylinux ~]# sed -i '/auth-access/s/# //' /opt/svndata/idc/conf/svnserve.conf [root@mylinux ~]# sed -i '/password-db =/s/# //' /opt/svndata/idc/conf/svnserve.conf [root@mylinux ~]# sed -i '/password-db =/s/passwd/\/opt\/svnpasswd\/passwd/' /opt/svndata/idc/conf/svnserve.conf [root@mylinux ~]# sed -i '/authz-db =/s/# //' /opt/svndata/idc/conf/svnserve.conf [root@mylinux ~]# sed -i '/authz-db =/s/authz$/\/opt\/svnpasswd\/authz/' /opt/svndata/idc/conf/svnserve.conf [root@mylinux ~]# cat /opt/svndata/idc/conf/svnserve.conf |grep -v "#"|grep -v "^$" [general] anon-access = none auth-access = write password-db = /opt/svnpasswd/passwd authz-db = /opt/svnpasswd/authz [sasl] [root@mylinux ~]# cp /opt/svndata/idc/conf/{passwd,authz} /opt/svnpasswd/ [root@mylinux ~]# chmod 600 /opt/svnpasswd/{authz,passwd} [root@mylinux ~]# ll /opt/svnpasswd total 8 -rw------- 1 root root 1080 Sep 1 12:33 authz -rw------- 1 root root 309 Sep 1 12:33 passwd [root@mylinux svnpasswd]# sed -i '/^# sally/atest01 = 123456' passwd [root@mylinux svnpasswd]# sed -i '/^test01/atest02 = 654321' passwd [root@mylinux svnpasswd]# cat passwd |grep -v "#"|grep -v "^$" [users] test01 = 123456 test02 = 654321 [root@mylinux svnpasswd]# echo -e "[idc:/]\ntest01 = rw\ntest02 = r" >>authz [root@mylinux svnpasswd]# tail -3 authz [idc:/] test01 = rw test02 = r [root@mylinux svnpasswd]# /etc/init.d/svnserve stop [root@mylinux svnpasswd]# ps -ef|grep svn root 1068 1 0 12:14 ? 00:00:00 svnserve -d -r /opt/svndata root 1491 995 0 13:21 pts/0 00:00:00 grep svn [root@mylinux svnpasswd]# pkill svnserve [root@mylinux svnpasswd]# ps -ef|grep svn root 1494 995 0 13:22 pts/0 00:00:00 grep svn [root@mylinux svnpasswd]# svnserve -d -r /opt/svndata [root@mylinux svnpasswd]# ps -ef|grep svnserve|grep -v grep root 1496 1 0 13:22 ? 00:00:00 svnserve -d -r /opt/svndata [root@mylinux svnpasswd]# netstat -lnt|grep svnserve [root@mylinux svnpasswd]# netstat -tunlp|grep svnserve tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 1496/svnserve
整个安装过程很简单,可以使用shell脚本安装,当然手工执行也可以接受,就不再赘述了。但是,启动SVN之后发现,使用/etc/init.d/svnserve stop关闭SVN服务,虽然命令成功执行了,但是SVN进程依然还在,所以就想创建一个svn的启动关闭脚本来完成,不用每次手工kill进程并启动,脚本内容如下:
#!/bin/bash ##################################### ##Created on Sep 1st by Jerry12356 ##################################### SvnPath=/opt/svndata/ #SvnPort=`netstat -tunlp|grep svnserve|awk '{print $4}'|cut -d: -f2` start(){ ps -ef|grep svnserve|grep -v grep >>/dev/null 2>&1 if [ $? -ne 0 ];then svnserve -d -r $SvnPath ps -ef|grep svnserve|grep -v grep >>/dev/null 2>&1 [ $? -eq 0 ] && echo "SVN server started successful." else SvnPort=`netstat -tunlp|grep svnserve|awk '{print $4}'|cut -d: -f2` echo "SVN server is already running(Port:$SvnPort)..." exit 1 fi } stop(){ ps -ef|grep svnserve|grep -v grep >>/dev/null 2>&1 if [ $? -eq 0 ];then pkill svnserve >>/dev/null 2>&1 echo "SVN server stopped successful." else echo "SVN server is not running." exit 127 fi } status(){ ps -ef|grep svnserve|grep -v grep >>/dev/null 2>&1 [ $? -eq 0 ] && echo "SVN server is running." ||echo "SVN server is stopped." } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) echo "Usage:$0 {start|stop|restart|status}" exit 1 ;; esac
相关文章推荐
- Django学习笔记一:安装配置
- EX07学习笔记之二:安装之后(2)-安全配置向导
- Ubuntu 学习笔记之bugzilla的安装及配置
- java学习笔记一——java安装配置
- Python Web 开发 学习笔记1 安装配置 python+django
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- 【PHP学习笔记】Windows 下Memcache安装配置
- maven3学习笔记1--maven的安装与配置
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- Linux学习笔记:REHL AS4的上网配置,Http服务安装及配置,ftp服务的安装及配置
- J2ME学习笔记_1_开发环境的安装和配置
- SQL Server CE服务器端和客户端安装配置学习笔记
- MySQL入门很简单-学习笔记 - 第 2 章 Windows平台下安装与配置MySQL
- OpenWrt安装配置学习笔记
- Qt 学习笔记之一 ―― Qt SDK 的下载安装与配置
- Qt 学习笔记之一 —— Qt SDK 的下载安装与配置
- C++/GDI+ 学习笔记(一)——安装、配置&使用
- 步步为营 SharePoint 开发学习笔记系列 二、安装和配置