@cdmonkey
2016-05-17T11:44:24.000000Z
字数 3014
阅读 1940
SVN
Download: http://www.collab.net/downloads/subversion
http://help.collab.net
部门维护文档存在版本更新速度快(甚至跟不上各系统的更新),没有集中存储问题。Subversion是简单、有效的一种版本控制软件,可以利用其版本控制功能来管理部门的维护文档。
确认安装场景:
[root@CSVN-A1 ~]# cat /etc/issue
CentOS release 6.5 (Final)
[root@CSVN-A1 ~]# python -V
Python 2.6.6
[root@CSVN-A1 ~]# useradd -c "Subversion Edge" svn
#为方便后面的操作进行授权:
[root@CSVN-A1 ~]# visudo
svn ALL=(ALL) NOPASSWD:ALL
[root@CSVN-A1 ~]# su - svn
#INSTALL JDK:
[svn@CSVN-A1 ~]$ tar zxvf jdk-7u21-linux-x64.tar.gz
[svn@CSVN-A1 ~]$ mv jdk1.7.0_21/ JDK1.7
[svn@CSVN-A1 ~]$ vim ~/.bash_profile
JAVA_HOME="/home/svn/JDK1.7"
CLASSPATH="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib"
PATH="$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin"
[svn@CSVN-A1 ~]$ source ~/.bash_profile
[svn@CSVN-A1 ~]$ java -version
java version "1.7.0_21"
Java(TM) SE Runtime Environment (build 1.7.0_21-b11)
Java HotSpot(TM) 64-Bit Server VM (build 23.21-b01, mixed mode)
[svn@CSVN-A1 ~]$ tar zxvf CollabNetSubversionEdge-5.0.1_linux-x86_64.tar.gz
[svn@CSVN-A1 ~]$ cd csvn/
#在安装之前还要修改下配置文件(这里需要注意,一定要先拷贝生成配置文件,而不能先执行安装并让其自动生成配置文件,因为生成的配置文件的属主与属组都是根用户):
[svn@CSVN-A1 csvn]$ cp data/conf/csvn.conf.dist data/conf/csvn.conf
[svn@CSVN-A1 csvn]$ vim data/conf/csvn.conf
#主要是修改下列两项:
RUN_AS_USER=svn
JAVA_HOME=/home/svn/JDK1.7
--------------------
#为了让服务开机自启动,我们需要执行下面的两个安装操作。
#INSTALL CSVN:
[svn@CSVN-A1 csvn]$ sudo -E bin/csvn install
Detected RHEL or Fedora:
Installing the CSVN Console daemon..
#INSTALL CSVN-HTTP:
[svn@CSVN-A1 csvn]$ sudo bin/csvn-httpd install
Detected RHEL or Fedora:
Installing the Subversion Edge Apache Server daemon..
#启动服务,必须以svn用户运行。
[svn@CSVN-A1 csvn]$ bin/csvn start
Starting CSVN Console...
...
CSVN Console started
Waiting for application to initialize (this may take a minute)................................
CSVN Console is ready at http://localhost:3343/csvn
--------------------
#启动如果失败,可以使用下面的命令进行查看。此命令会在控制台输出启动日志,便于确定是什么错误导致启动失败。
[svn@CSVN-A1 csvn]$ bin/csvn console
Running CSVN Console...
CSVN Console is already running.
查看一下端口:
[svn@CSVN-A1 csvn]$ lsof -i:3343
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 27277 svn 218u IPv6 42266 0t0 TCP *:ms-cluster-net (LISTEN)
[root@CSVN-A1 ~]# lsof -i:18080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 5401 svn 3u IPv4 32106 0t0 TCP *:18080 (LISTEN)
httpd 5405 svn 3u IPv4 32106 0t0 TCP *:18080 (LISTEN)
httpd 5406 svn 3u IPv4 32106 0t0 TCP *:18080 (LISTEN)
httpd 5407 svn 3u IPv4 32106 0t0 TCP *:18080 (LISTEN)
httpd 5408 svn 3u IPv4 32106 0t0 TCP *:18080 (LISTEN)
httpd 5409 svn 3u IPv4 32106 0t0 TCP *:18080 (LISTEN)
以上操作做完后记得重启一下系统,这样就可以访问了(用户名和密码相同)。登录成功后就可以创建用户和版本库,并且也可以给创建的用户选择角色。
http://www.iitshare.com/linux-svn-migration.html
svnadmin hotcopy
# For example:
svnadmin hotcopy /path/to/repository /path/to/backup
利用该指令可以实现完全备份(该指令原设计目的估计不是用来备份的,只能进行全量拷贝),但不能进行增量备份。该指令是将整个库都“热”拷贝一份出来,包括库的钩子脚本、设置文件等。任何时刻运行该指令都将得到一个版本库的完整拷贝,不管是否有其他的进程当前正使用版本库。
SVN
服务,那么都不需要进行恢复,只需要进行简单设置就能够切换到备份库。
svnadmin dump
该指令为官方推荐的备份方法,优点为比较灵活,能够全量备份也可以增量备份,并提供了版本恢复机制。它的缺点为如果版本比较大,如版本数增长到数万、数十万,那么备份的过程将非常慢。备份耗时,恢复更加的耗时,不利于快速的进行灾难恢复。推荐于版本数比较小的情况下使用这种备份方式。
使用该指令进行备份时,需关闭所有运行的进程,并确保没有应用在访问版本库(如httpd
、svnserve
或本地用户直接进行访问)。