Subversion(SVN)安装文档 SVN中文网址(操作手册) http://www.iusesvn.com/ 软件版本(当前版本): subversion-1.6.17.tar.gz subversion-deps-1.6.17.tar.gz 下载地址: http://subversion.tigris.org/ser ... amp;expandFolder=74 apache: httpd-2.2.22.tar.gz 下载地址: http://apache.etoak.com/httpd/ apr:apr-1.3.9.tar.gz apr-util:apr-util-1.3.9.tar.gz 下载地址: http://apr.apache.org/download.cgi 1. 安装apr和apr-util # tar zxvf apr-1.3.9.tar.gz # cd apr-1.3.9 # ./configure --prefix=/usr/local/apr # make # make install # tar zxvf apr-util-1.3.9.tar.gz # cd apr-util-1.3.9 # ./configure --with-apr=/usr/local/apr # make # make install 2. 安装apache # tar zxvf httpd-2.2.22.tar.gz # cd httpd-2.2.22 # ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-ssl # make # make install 测试: /usr/local/apache/bin/apachectl –k start #启动 http://ip 3.安装subversion # tar zxvf subversion-1.6.17.tar.gz # tar zxvf subversion-deps-1.6.17.tar.gz # cd subversion-1.6.17 # rm -rf apr apr-util/ #自带版本较老,建议采用新的版本。 # ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs -with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl # make # make install /*将svnadmin放入$PATH环境变量里*/ # cp /usr/local/svn/bin/svnadmin /usr/local/sbin 测试安装是否成功 # usr/local/svn/bin/svnadmin –version 4.subversion环境的搭建:使用与Apache模块的方式运行 # vi apache/conf/httpd.conf 确保配置文件添加了如下内容(表示正确加载了SVN的模块): # LoadModule foo_module modules/mod_foo.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # #然后配置仓库:(需要自己添加的内容) <Location /svn> DAV svn SVNParentPath /data/svn AuthType Basic AuthName "Subversion repository" AuthUserFile /data/svn/svnpasswd Require valid-usr AuthzSVNAccessFile /data/svn/svnaccessfile </Location> 建立SVN版本库 # cd /data/svn/ #/data/svn目录是版本库目录 # /usr/local/svn/bin/svnadmin create project #创建版本库project # chmod -R 777 project/ #修改权限 建立svnaccessfile # vi svnaccessfile #文件名称与apache配置的保持一致 [project:/] xb = rw #添加能访问的版本库的用户及权限 添加apache的用户和密码(登录apache): # /usr/local/apache/bin/htpasswd -bc svnpasswd xb admin # -bc 第一次创建需要c参数以后用户只要b即可 重启apache: # /usr/local/apache/bin/apachectl -k restart 5.通过http测试: http://192.168.1.241/svn/project 提示输入用户名及密码: 附一:svnaccessfile权限控制文件说明: [svn1:/] #表示仓库svn1的根目录下的访问权限 test1 = rw #svn1仓库test1用户具有读和写的权限 test2 = r #svn1仓库test2用户具有读的权限 [svn2:/] #仓库svn2根目录下的访问权限 test1 = r #test1用户在仓库svn2根目录只有读权限 test2 = #test2用户在仓库svn2根目录没有任何权限 [/] #表示所有仓库的根目录下的权限 * = #表示所有用户都有读权限 [groups] #表示群组设置 group1= test1, test2 #设置组名及成员 @group1 = rw 设置组权限 附二:备份(可以直接将版本仓库通过rsync同步到另一台svn服务器进行备份或直接备份版本仓库目录) svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 优缺点分析 ============== 第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。 缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。 个人建议在版本数比较小的情况下使用这种备份方式。 第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份; 优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。 缺点是:比较耗费硬盘,需要有较大的硬盘支持 第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。 优点是:当制作成2个镜像库的时候起到双机实时备份的作用; 缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。 操作: 以下为了方便操作将svn的目录添加到PATH中 # vim /etc/profile PATH=/usr/local/svn/binPATH # source /etc/profile 1、svnadmin dump使用 1).使用svnadmin dump 做完全备份 # svnadmin dump /data/svn/project/ >/home/backup/svn.full.bak * Dumped revision 0. * Dumped revision 1. 2).使用svnadmin dump 做增量备份 # svnadmin dump /data/svn/project/ -r2 --incremental >/home/backup/svn.2.bak 以增量方式将版本号2的版本库备份为svn.2.bak 3).使用svnadmin dump 还原,为了方便测试建立一个test的版本库 # svnadmin create /data/svn/test # svnadmin load /data/svn/test/ < /home/backup/svn.full.bak <<< Started new transaction, based on original revision 1 * adding path : 12.pdf ... done. * adding path : httpd.doc ... done. * adding path : lihttpd.zip ... done. ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * adding path : abc1.zip ... done. * adding path : abc2.pdf ... done. * adding path : abc3.doc ... done. ------- Committed revision 2 >>> 如果还有增量备份的文件: # svnadmin load /data/svn/test/ < /home/backup/svn.2.bak 2、hotcopy 使用 1.使用svnadmin hotcopy做完全备份 # svnadmin hotcopy /data/svn/project/ /home/backup/svn --clean-logs 2.使用svnadmin hotcopy还原 # svnadmin hotcopy /home/backup/svn /data/svn/test/ |
Subversion(SVN)安装文档 SVN中文网址(操作手册) http://www.iusesvn.com/ 软件版本(当前版本): subversion-1.6.17.tar.gz subversion-deps-1.6.17.tar.gz 下载地址: http://subversion.tigris.org/ser ... amp;expandFolder=74 apache: httpd-2.2.22.tar.gz 下载地址: http://apache.etoak.com/httpd/ apr:apr-1.3.9.tar.gz apr-util:apr-util-1.3.9.tar.gz 下载地址: http://apr.apache.org/download.cgi 1. 安装apr和apr-util # tar zxvf apr-1.3.9.tar.gz # cd apr-1.3.9 # ./configure --prefix=/usr/local/apr # make # make install # tar zxvf apr-util-1.3.9.tar.gz # cd apr-util-1.3.9 # ./configure --with-apr=/usr/local/apr # make # make install 2. 安装apache # tar zxvf httpd-2.2.22.tar.gz # cd httpd-2.2.22 # ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-ssl # make # make install 测试: /usr/local/apache/bin/apachectl –k start #启动 http://ip 3.安装subversion # tar zxvf subversion-1.6.17.tar.gz # tar zxvf subversion-deps-1.6.17.tar.gz # cd subversion-1.6.17 # rm -rf apr apr-util/ #自带版本较老,建议采用新的版本。 # ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs -with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl # make # make install /*将svnadmin放入$PATH环境变量里*/ # cp /usr/local/svn/bin/svnadmin /usr/local/sbin 测试安装是否成功 # usr/local/svn/bin/svnadmin –version 4.subversion环境的搭建:使用与Apache模块的方式运行 # vi apache/conf/httpd.conf 确保配置文件添加了如下内容(表示正确加载了SVN的模块): # LoadModule foo_module modules/mod_foo.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # #然后配置仓库:(需要自己添加的内容) <Location /svn> DAV svn SVNParentPath /data/svn AuthType Basic AuthName "Subversion repository" AuthUserFile /data/svn/svnpasswd Require valid-usr AuthzSVNAccessFile /data/svn/svnaccessfile </Location> 建立SVN版本库 # cd /data/svn/ #/data/svn目录是版本库目录 # /usr/local/svn/bin/svnadmin create project #创建版本库project # chmod -R 777 project/ #修改权限 建立svnaccessfile # vi svnaccessfile #文件名称与apache配置的保持一致 [project:/] xb = rw #添加能访问的版本库的用户及权限 添加apache的用户和密码(登录apache): # /usr/local/apache/bin/htpasswd -bc svnpasswd xb admin # -bc 第一次创建需要c参数以后用户只要b即可 重启apache: # /usr/local/apache/bin/apachectl -k restart 5.通过http测试: http://192.168.1.241/svn/project 提示输入用户名及密码: 附一:svnaccessfile权限控制文件说明: [svn1:/] #表示仓库svn1的根目录下的访问权限 test1 = rw #svn1仓库test1用户具有读和写的权限 test2 = r #svn1仓库test2用户具有读的权限 [svn2:/] #仓库svn2根目录下的访问权限 test1 = r #test1用户在仓库svn2根目录只有读权限 test2 = #test2用户在仓库svn2根目录没有任何权限 [/] #表示所有仓库的根目录下的权限 * = #表示所有用户都有读权限 [groups] #表示群组设置 group1= test1, test2 #设置组名及成员 @group1 = rw 设置组权限 附二:备份(可以直接将版本仓库通过rsync同步到另一台svn服务器进行备份或直接备份版本仓库目录) svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 优缺点分析 ============== 第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。 缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。 个人建议在版本数比较小的情况下使用这种备份方式。 第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份; 优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。 缺点是:比较耗费硬盘,需要有较大的硬盘支持 第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。 优点是:当制作成2个镜像库的时候起到双机实时备份的作用; 缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。 操作: 以下为了方便操作将svn的目录添加到PATH中 # vim /etc/profile PATH=/usr/local/svn/binPATH # source /etc/profile 1、svnadmin dump使用 1).使用svnadmin dump 做完全备份 # svnadmin dump /data/svn/project/ >/home/backup/svn.full.bak * Dumped revision 0. * Dumped revision 1. 2).使用svnadmin dump 做增量备份 # svnadmin dump /data/svn/project/ -r2 --incremental >/home/backup/svn.2.bak 以增量方式将版本号2的版本库备份为svn.2.bak 3).使用svnadmin dump 还原,为了方便测试建立一个test的版本库 # svnadmin create /data/svn/test # svnadmin load /data/svn/test/ < /home/backup/svn.full.bak <<< Started new transaction, based on original revision 1 * adding path : 12.pdf ... done. * adding path : httpd.doc ... done. * adding path : lihttpd.zip ... done. ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * adding path : abc1.zip ... done. * adding path : abc2.pdf ... done. * adding path : abc3.doc ... done. ------- Committed revision 2 >>> 如果还有增量备份的文件: # svnadmin load /data/svn/test/ < /home/backup/svn.2.bak 2、hotcopy 使用 1.使用svnadmin hotcopy做完全备份 # svnadmin hotcopy /data/svn/project/ /home/backup/svn --clean-logs 2.使用svnadmin hotcopy还原 # svnadmin hotcopy /home/backup/svn /data/svn/test/ |
Subversion(SVN)安装文档 SVN中文网址(操作手册) http://www.iusesvn.com/ 软件版本(当前版本): subversion-1.6.17.tar.gz subversion-deps-1.6.17.tar.gz 下载地址: http://subversion.tigris.org/ser ... amp;expandFolder=74 apache: httpd-2.2.22.tar.gz 下载地址: http://apache.etoak.com/httpd/ apr:apr-1.3.9.tar.gz apr-util:apr-util-1.3.9.tar.gz 下载地址: http://apr.apache.org/download.cgi 1. 安装apr和apr-util # tar zxvf apr-1.3.9.tar.gz # cd apr-1.3.9 # ./configure --prefix=/usr/local/apr # make # make install # tar zxvf apr-util-1.3.9.tar.gz # cd apr-util-1.3.9 # ./configure --with-apr=/usr/local/apr # make # make install 2. 安装apache # tar zxvf httpd-2.2.22.tar.gz # cd httpd-2.2.22 # ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-ssl # make # make install 测试: /usr/local/apache/bin/apachectl –k start #启动 http://ip 3.安装subversion # tar zxvf subversion-1.6.17.tar.gz # tar zxvf subversion-deps-1.6.17.tar.gz # cd subversion-1.6.17 # rm -rf apr apr-util/ #自带版本较老,建议采用新的版本。 # ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs -with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl # make # make install /*将svnadmin放入$PATH环境变量里*/ # cp /usr/local/svn/bin/svnadmin /usr/local/sbin 测试安装是否成功 # usr/local/svn/bin/svnadmin –version 4.subversion环境的搭建:使用与Apache模块的方式运行 # vi apache/conf/httpd.conf 确保配置文件添加了如下内容(表示正确加载了SVN的模块): # LoadModule foo_module modules/mod_foo.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # #然后配置仓库:(需要自己添加的内容) <Location /svn> DAV svn SVNParentPath /data/svn AuthType Basic AuthName "Subversion repository" AuthUserFile /data/svn/svnpasswd Require valid-usr AuthzSVNAccessFile /data/svn/svnaccessfile </Location> 建立SVN版本库 # cd /data/svn/ #/data/svn目录是版本库目录 # /usr/local/svn/bin/svnadmin create project #创建版本库project # chmod -R 777 project/ #修改权限 建立svnaccessfile # vi svnaccessfile #文件名称与apache配置的保持一致 [project:/] xb = rw #添加能访问的版本库的用户及权限 添加apache的用户和密码(登录apache): # /usr/local/apache/bin/htpasswd -bc svnpasswd xb admin # -bc 第一次创建需要c参数以后用户只要b即可 重启apache: # /usr/local/apache/bin/apachectl -k restart 5.通过http测试: http://192.168.1.241/svn/project 提示输入用户名及密码: 附一:svnaccessfile权限控制文件说明: [svn1:/] #表示仓库svn1的根目录下的访问权限 test1 = rw #svn1仓库test1用户具有读和写的权限 test2 = r #svn1仓库test2用户具有读的权限 [svn2:/] #仓库svn2根目录下的访问权限 test1 = r #test1用户在仓库svn2根目录只有读权限 test2 = #test2用户在仓库svn2根目录没有任何权限 [/] #表示所有仓库的根目录下的权限 * = #表示所有用户都有读权限 [groups] #表示群组设置 group1= test1, test2 #设置组名及成员 @group1 = rw 设置组权限 附二:备份(可以直接将版本仓库通过rsync同步到另一台svn服务器进行备份或直接备份版本仓库目录) svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 优缺点分析 ============== 第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。 缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。 个人建议在版本数比较小的情况下使用这种备份方式。 第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份; 优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。 缺点是:比较耗费硬盘,需要有较大的硬盘支持 第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。 优点是:当制作成2个镜像库的时候起到双机实时备份的作用; 缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。 操作: 以下为了方便操作将svn的目录添加到PATH中 # vim /etc/profile PATH=/usr/local/svn/binPATH # source /etc/profile 1、svnadmin dump使用 1).使用svnadmin dump 做完全备份 # svnadmin dump /data/svn/project/ >/home/backup/svn.full.bak * Dumped revision 0. * Dumped revision 1. 2).使用svnadmin dump 做增量备份 # svnadmin dump /data/svn/project/ -r2 --incremental >/home/backup/svn.2.bak 以增量方式将版本号2的版本库备份为svn.2.bak 3).使用svnadmin dump 还原,为了方便测试建立一个test的版本库 # svnadmin create /data/svn/test # svnadmin load /data/svn/test/ < /home/backup/svn.full.bak <<< Started new transaction, based on original revision 1 * adding path : 12.pdf ... done. * adding path : httpd.doc ... done. * adding path : lihttpd.zip ... done. ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * adding path : abc1.zip ... done. * adding path : abc2.pdf ... done. * adding path : abc3.doc ... done. ------- Committed revision 2 >>> 如果还有增量备份的文件: # svnadmin load /data/svn/test/ < /home/backup/svn.2.bak 2、hotcopy 使用 1.使用svnadmin hotcopy做完全备份 # svnadmin hotcopy /data/svn/project/ /home/backup/svn --clean-logs 2.使用svnadmin hotcopy还原 # svnadmin hotcopy /home/backup/svn /data/svn/test/ |
Subversion(SVN)安装文档 SVN中文网址(操作手册) http://www.iusesvn.com/ 软件版本(当前版本): subversion-1.6.17.tar.gz subversion-deps-1.6.17.tar.gz 下载地址: http://subversion.tigris.org/ser ... amp;expandFolder=74 apache: httpd-2.2.22.tar.gz 下载地址: http://apache.etoak.com/httpd/ apr:apr-1.3.9.tar.gz apr-util:apr-util-1.3.9.tar.gz 下载地址: http://apr.apache.org/download.cgi 1. 安装apr和apr-util # tar zxvf apr-1.3.9.tar.gz # cd apr-1.3.9 # ./configure --prefix=/usr/local/apr # make # make install # tar zxvf apr-util-1.3.9.tar.gz # cd apr-util-1.3.9 # ./configure --with-apr=/usr/local/apr # make # make install 2. 安装apache # tar zxvf httpd-2.2.22.tar.gz # cd httpd-2.2.22 # ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-ssl # make # make install 测试: /usr/local/apache/bin/apachectl –k start #启动 http://ip 3.安装subversion # tar zxvf subversion-1.6.17.tar.gz # tar zxvf subversion-deps-1.6.17.tar.gz # cd subversion-1.6.17 # rm -rf apr apr-util/ #自带版本较老,建议采用新的版本。 # ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs -with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl # make # make install /*将svnadmin放入$PATH环境变量里*/ # cp /usr/local/svn/bin/svnadmin /usr/local/sbin 测试安装是否成功 # usr/local/svn/bin/svnadmin –version 4.subversion环境的搭建:使用与Apache模块的方式运行 # vi apache/conf/httpd.conf 确保配置文件添加了如下内容(表示正确加载了SVN的模块): # LoadModule foo_module modules/mod_foo.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # #然后配置仓库:(需要自己添加的内容) <Location /svn> DAV svn SVNParentPath /data/svn AuthType Basic AuthName "Subversion repository" AuthUserFile /data/svn/svnpasswd Require valid-usr AuthzSVNAccessFile /data/svn/svnaccessfile </Location> 建立SVN版本库 # cd /data/svn/ #/data/svn目录是版本库目录 # /usr/local/svn/bin/svnadmin create project #创建版本库project # chmod -R 777 project/ #修改权限 建立svnaccessfile # vi svnaccessfile #文件名称与apache配置的保持一致 [project:/] xb = rw #添加能访问的版本库的用户及权限 添加apache的用户和密码(登录apache): # /usr/local/apache/bin/htpasswd -bc svnpasswd xb admin # -bc 第一次创建需要c参数以后用户只要b即可 重启apache: # /usr/local/apache/bin/apachectl -k restart 5.通过http测试: http://192.168.1.241/svn/project 提示输入用户名及密码: 附一:svnaccessfile权限控制文件说明: [svn1:/] #表示仓库svn1的根目录下的访问权限 test1 = rw #svn1仓库test1用户具有读和写的权限 test2 = r #svn1仓库test2用户具有读的权限 [svn2:/] #仓库svn2根目录下的访问权限 test1 = r #test1用户在仓库svn2根目录只有读权限 test2 = #test2用户在仓库svn2根目录没有任何权限 [/] #表示所有仓库的根目录下的权限 * = #表示所有用户都有读权限 [groups] #表示群组设置 group1= test1, test2 #设置组名及成员 @group1 = rw 设置组权限 附二:备份(可以直接将版本仓库通过rsync同步到另一台svn服务器进行备份或直接备份版本仓库目录) svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 优缺点分析 ============== 第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。 缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。 个人建议在版本数比较小的情况下使用这种备份方式。 第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份; 优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。 缺点是:比较耗费硬盘,需要有较大的硬盘支持 第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。 优点是:当制作成2个镜像库的时候起到双机实时备份的作用; 缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。 操作: 以下为了方便操作将svn的目录添加到PATH中 # vim /etc/profile PATH=/usr/local/svn/binPATH # source /etc/profile 1、svnadmin dump使用 1).使用svnadmin dump 做完全备份 # svnadmin dump /data/svn/project/ >/home/backup/svn.full.bak * Dumped revision 0. * Dumped revision 1. 2).使用svnadmin dump 做增量备份 # svnadmin dump /data/svn/project/ -r2 --incremental >/home/backup/svn.2.bak 以增量方式将版本号2的版本库备份为svn.2.bak 3).使用svnadmin dump 还原,为了方便测试建立一个test的版本库 # svnadmin create /data/svn/test # svnadmin load /data/svn/test/ < /home/backup/svn.full.bak <<< Started new transaction, based on original revision 1 * adding path : 12.pdf ... done. * adding path : httpd.doc ... done. * adding path : lihttpd.zip ... done. ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * adding path : abc1.zip ... done. * adding path : abc2.pdf ... done. * adding path : abc3.doc ... done. ------- Committed revision 2 >>> 如果还有增量备份的文件: # svnadmin load /data/svn/test/ < /home/backup/svn.2.bak 2、hotcopy 使用 1.使用svnadmin hotcopy做完全备份 # svnadmin hotcopy /data/svn/project/ /home/backup/svn --clean-logs 2.使用svnadmin hotcopy还原 # svnadmin hotcopy /home/backup/svn /data/svn/test/ |
Subversion(SVN)安装文档 SVN中文网址(操作手册) http://www.iusesvn.com/ 软件版本(当前版本): subversion-1.6.17.tar.gz subversion-deps-1.6.17.tar.gz 下载地址: http://subversion.tigris.org/ser ... amp;expandFolder=74 apache: httpd-2.2.22.tar.gz 下载地址: http://apache.etoak.com/httpd/ apr:apr-1.3.9.tar.gz apr-util:apr-util-1.3.9.tar.gz 下载地址: http://apr.apache.org/download.cgi 1. 安装apr和apr-util # tar zxvf apr-1.3.9.tar.gz # cd apr-1.3.9 # ./configure --prefix=/usr/local/apr # make # make install # tar zxvf apr-util-1.3.9.tar.gz # cd apr-util-1.3.9 # ./configure --with-apr=/usr/local/apr # make # make install 2. 安装apache # tar zxvf httpd-2.2.22.tar.gz # cd httpd-2.2.22 # ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-ssl # make # make install 测试: /usr/local/apache/bin/apachectl –k start #启动 http://ip 3.安装subversion # tar zxvf subversion-1.6.17.tar.gz # tar zxvf subversion-deps-1.6.17.tar.gz # cd subversion-1.6.17 # rm -rf apr apr-util/ #自带版本较老,建议采用新的版本。 # ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs -with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl # make # make install /*将svnadmin放入$PATH环境变量里*/ # cp /usr/local/svn/bin/svnadmin /usr/local/sbin 测试安装是否成功 # usr/local/svn/bin/svnadmin –version 4.subversion环境的搭建:使用与Apache模块的方式运行 # vi apache/conf/httpd.conf 确保配置文件添加了如下内容(表示正确加载了SVN的模块): # LoadModule foo_module modules/mod_foo.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # #然后配置仓库:(需要自己添加的内容) <Location /svn> DAV svn SVNParentPath /data/svn AuthType Basic AuthName "Subversion repository" AuthUserFile /data/svn/svnpasswd Require valid-usr AuthzSVNAccessFile /data/svn/svnaccessfile </Location> 建立SVN版本库 # cd /data/svn/ #/data/svn目录是版本库目录 # /usr/local/svn/bin/svnadmin create project #创建版本库project # chmod -R 777 project/ #修改权限 建立svnaccessfile # vi svnaccessfile #文件名称与apache配置的保持一致 [project:/] xb = rw #添加能访问的版本库的用户及权限 添加apache的用户和密码(登录apache): # /usr/local/apache/bin/htpasswd -bc svnpasswd xb admin # -bc 第一次创建需要c参数以后用户只要b即可 重启apache: # /usr/local/apache/bin/apachectl -k restart 5.通过http测试: http://192.168.1.241/svn/project 提示输入用户名及密码: 附一:svnaccessfile权限控制文件说明: [svn1:/] #表示仓库svn1的根目录下的访问权限 test1 = rw #svn1仓库test1用户具有读和写的权限 test2 = r #svn1仓库test2用户具有读的权限 [svn2:/] #仓库svn2根目录下的访问权限 test1 = r #test1用户在仓库svn2根目录只有读权限 test2 = #test2用户在仓库svn2根目录没有任何权限 [/] #表示所有仓库的根目录下的权限 * = #表示所有用户都有读权限 [groups] #表示群组设置 group1= test1, test2 #设置组名及成员 @group1 = rw 设置组权限 附二:备份(可以直接将版本仓库通过rsync同步到另一台svn服务器进行备份或直接备份版本仓库目录) svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 优缺点分析 ============== 第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。 缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。 个人建议在版本数比较小的情况下使用这种备份方式。 第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份; 优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。 缺点是:比较耗费硬盘,需要有较大的硬盘支持 第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。 优点是:当制作成2个镜像库的时候起到双机实时备份的作用; 缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。 操作: 以下为了方便操作将svn的目录添加到PATH中 # vim /etc/profile PATH=/usr/local/svn/binPATH # source /etc/profile 1、svnadmin dump使用 1).使用svnadmin dump 做完全备份 # svnadmin dump /data/svn/project/ >/home/backup/svn.full.bak * Dumped revision 0. * Dumped revision 1. 2).使用svnadmin dump 做增量备份 # svnadmin dump /data/svn/project/ -r2 --incremental >/home/backup/svn.2.bak 以增量方式将版本号2的版本库备份为svn.2.bak 3).使用svnadmin dump 还原,为了方便测试建立一个test的版本库 # svnadmin create /data/svn/test # svnadmin load /data/svn/test/ < /home/backup/svn.full.bak <<< Started new transaction, based on original revision 1 * adding path : 12.pdf ... done. * adding path : httpd.doc ... done. * adding path : lihttpd.zip ... done. ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * adding path : abc1.zip ... done. * adding path : abc2.pdf ... done. * adding path : abc3.doc ... done. ------- Committed revision 2 >>> 如果还有增量备份的文件: # svnadmin load /data/svn/test/ < /home/backup/svn.2.bak 2、hotcopy 使用 1.使用svnadmin hotcopy做完全备份 # svnadmin hotcopy /data/svn/project/ /home/backup/svn --clean-logs 2.使用svnadmin hotcopy还原 # svnadmin hotcopy /home/backup/svn /data/svn/test/ |
Subversion(SVN)安装文档 SVN中文网址(操作手册) http://www.iusesvn.com/ 软件版本(当前版本): subversion-1.6.17.tar.gz subversion-deps-1.6.17.tar.gz 下载地址: http://subversion.tigris.org/ser ... amp;expandFolder=74 apache: httpd-2.2.22.tar.gz 下载地址: http://apache.etoak.com/httpd/ apr:apr-1.3.9.tar.gz apr-util:apr-util-1.3.9.tar.gz 下载地址: http://apr.apache.org/download.cgi 1. 安装apr和apr-util # tar zxvf apr-1.3.9.tar.gz # cd apr-1.3.9 # ./configure --prefix=/usr/local/apr # make # make install # tar zxvf apr-util-1.3.9.tar.gz # cd apr-util-1.3.9 # ./configure --with-apr=/usr/local/apr # make # make install 2. 安装apache # tar zxvf httpd-2.2.22.tar.gz # cd httpd-2.2.22 # ./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav --enable-maintainer-mode --enable-ssl # make # make install 测试: /usr/local/apache/bin/apachectl –k start #启动 http://ip 3.安装subversion # tar zxvf subversion-1.6.17.tar.gz # tar zxvf subversion-deps-1.6.17.tar.gz # cd subversion-1.6.17 # rm -rf apr apr-util/ #自带版本较老,建议采用新的版本。 # ./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache/bin/apxs -with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl # make # make install /*将svnadmin放入$PATH环境变量里*/ # cp /usr/local/svn/bin/svnadmin /usr/local/sbin 测试安装是否成功 # usr/local/svn/bin/svnadmin –version 4.subversion环境的搭建:使用与Apache模块的方式运行 # vi apache/conf/httpd.conf 确保配置文件添加了如下内容(表示正确加载了SVN的模块): # LoadModule foo_module modules/mod_foo.so LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so # #然后配置仓库:(需要自己添加的内容) <Location /svn> DAV svn SVNParentPath /data/svn AuthType Basic AuthName "Subversion repository" AuthUserFile /data/svn/svnpasswd Require valid-usr AuthzSVNAccessFile /data/svn/svnaccessfile </Location> 建立SVN版本库 # cd /data/svn/ #/data/svn目录是版本库目录 # /usr/local/svn/bin/svnadmin create project #创建版本库project # chmod -R 777 project/ #修改权限 建立svnaccessfile # vi svnaccessfile #文件名称与apache配置的保持一致 [project:/] xb = rw #添加能访问的版本库的用户及权限 添加apache的用户和密码(登录apache): # /usr/local/apache/bin/htpasswd -bc svnpasswd xb admin # -bc 第一次创建需要c参数以后用户只要b即可 重启apache: # /usr/local/apache/bin/apachectl -k restart 5.通过http测试: http://192.168.1.241/svn/project 提示输入用户名及密码: 附一:svnaccessfile权限控制文件说明: [svn1:/] #表示仓库svn1的根目录下的访问权限 test1 = rw #svn1仓库test1用户具有读和写的权限 test2 = r #svn1仓库test2用户具有读的权限 [svn2:/] #仓库svn2根目录下的访问权限 test1 = r #test1用户在仓库svn2根目录只有读权限 test2 = #test2用户在仓库svn2根目录没有任何权限 [/] #表示所有仓库的根目录下的权限 * = #表示所有用户都有读权限 [groups] #表示群组设置 group1= test1, test2 #设置组名及成员 @group1 = rw 设置组权限 附二:备份(可以直接将版本仓库通过rsync同步到另一台svn服务器进行备份或直接备份版本仓库目录) svn备份一般采用三种方式: 1)svnadmin dump 2)svnadmin hotcopy 3)svnsync. 优缺点分析 ============== 第一种svnadmin dump是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。 缺点是:如果版本比较大,如版本数增长到数万、数十万,那么dump的过程将非常慢;备份耗时,恢复更耗时;不利于快速进行灾难恢复。 个人建议在版本数比较小的情况下使用这种备份方式。 第二种svnadmin hotcopy原设计目的估计不是用来备份的,只能进行全量拷贝,不能进行增量备份; 优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚至不需要恢复,只需要进行简单配置即可切换到备份库上工作。 缺点是:比较耗费硬盘,需要有较大的硬盘支持 第三种svnsync实际上是制作2个镜像库,当一个坏了的时候,可以迅速切换到另一个。不过,必须svn1.4版本以上才支持这个功能。 优点是:当制作成2个镜像库的时候起到双机实时备份的作用; 缺点是:当作为2个镜像库使用时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样子”;而当作为普通备份机制每日备份时,操作又较前2种方法麻烦。 操作: 以下为了方便操作将svn的目录添加到PATH中 # vim /etc/profile PATH=/usr/local/svn/binPATH # source /etc/profile 1、svnadmin dump使用 1).使用svnadmin dump 做完全备份 # svnadmin dump /data/svn/project/ >/home/backup/svn.full.bak * Dumped revision 0. * Dumped revision 1. 2).使用svnadmin dump 做增量备份 # svnadmin dump /data/svn/project/ -r2 --incremental >/home/backup/svn.2.bak 以增量方式将版本号2的版本库备份为svn.2.bak 3).使用svnadmin dump 还原,为了方便测试建立一个test的版本库 # svnadmin create /data/svn/test # svnadmin load /data/svn/test/ < /home/backup/svn.full.bak <<< Started new transaction, based on original revision 1 * adding path : 12.pdf ... done. * adding path : httpd.doc ... done. * adding path : lihttpd.zip ... done. ------- Committed revision 1 >>> <<< Started new transaction, based on original revision 2 * adding path : abc1.zip ... done. * adding path : abc2.pdf ... done. * adding path : abc3.doc ... done. ------- Committed revision 2 >>> 如果还有增量备份的文件: # svnadmin load /data/svn/test/ < /home/backup/svn.2.bak 2、hotcopy 使用 1.使用svnadmin hotcopy做完全备份 # svnadmin hotcopy /data/svn/project/ /home/backup/svn --clean-logs 2.使用svnadmin hotcopy还原 # svnadmin hotcopy /home/backup/svn /data/svn/test/ |