Linux下 svn相关操作

 

一、首先看看svn安装的位置:

命令: find / -name svn

Linux下 svn相关操作_linux服务器

 

/var/svn :表示安装目录 

/user/bin/svn :表示命令目录

可以看到的是svn的地址是var/svn

那么到底是不是:我们到这个目录下看:

 

二、重启或启动

1 首先查看svn的进程:

查看进程命令:ps -ef(查看所有进程);要筛选的话用grep,筛选svn的进程命令:ps -ef|grep svn。

Linux下 svn相关操作_重启_02

 2  杀死主进程:

杀死进程的命令用kill -9 进程id。

Linux下 svn相关操作_svn服务器_03

 3:启动svn:

启动svn的命令用 svnserve -d -r 安装路径


-d表示svnserve.exe作为服务程序运行在后台;-r表示将svn的目录当作根目录。

就是这个命令:svnserve -d -r /var/svn/svnrepos

svn 就启动了

4.再次验证 ps -ef|grep svn

Linux下 svn相关操作_绝对路径_04

 

 

三、svn数据存储位置

svn有两种存储方式:BDB和FSFS,目前用的最多的是FSFS方式,这种方式的话,一般是存储在\db\revs文件夹下,里面有一堆以版本号命名的文件,如:0、1、2、3、4......,那个就是了。

svn先把0版本的状态压缩成1个文件,然后每次版本更新时就针对变动的部分做一个压缩文件,每次都是增加一个增量包,最后在服务器上能看到文件名为从0开始到最终版本的一系列文件。

Linux下 svn相关操作_重启_05

 

四、查看:

 

a. 启动SVN



# svnserve -d -r /opt/svn/repositories


 

b. 查看SVN进程



# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories


 

c. 检测SVN端口



# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN


 

5. 停止重启SVN:



# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 启动


 

五、Linux服务器端设置svn开机启动

(1)在Linux服务器跟目录((/root路径下))创建一个脚本文件

     #  touch svn.sh

(2) 进入脚本文件

      # vim svn.sh

(3)添加一下内容

    #!/bin/bash

    /usr/bin/svnserve -d -r  /opt/svn/repositories   (/usr/bin/svnserve -d -r  /var/svn/svnrepos)

    解释一下:

               这里的svnserve路径保险起见,最好写绝对路径,因为启动的时候,环境变量也许没加载。

绝对路径怎么查?


      # which svnserve


(4)改该脚本的执行权限


    # chmod 777 svn.sh


(5)加入自动运行


     # vi /etc/rc.d/rc.local

在末尾添加脚本的路径:

       /root/svn.sh


(6)重启Linux服务器,重启后查看svn服务器是否已经开启


        #  ps -ef|grep svnserve


     如果显示以下信息表示svn已经开启了:


       tcp        0      0 0.0.0.0:3690            0.0.0.0:*               LISTEN