android svn丢失文件恢复,SVN搭建(以此为准,成功)文后含备份与恢复

一,安装必须的软件包.yum install subversion (SVN服务器)mysql-server (用于codestriker)httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)sendmail (用于配置用户提交代码后发邮件提醒)wget gcc-c++ make unzip perl* (必备软件包)ntsysv vim-enhanced (可选)二,基本的SVN服务器配置1,新建一个目录用于存储SVN所有文件# mkdir /home/svn2,新建一个版本仓库# svnadmin create /home/svn/Android3,初始化版本仓库中的目录#cd /home/svn

# mkdir Android Android/server Android/client Android/test (建立临时目录)# svn import Android/ file:///home/svn/Android -m "初始化SVN目录"# rm -rf Android (删除临时建立的目录)【备:建临时目录可以不用,本文是为了测试用。】

4,添加用户要添加SVN用户非常简单,只需在/home/svn/Android/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:[users]# harry = harryssecret# sally = sallyssecretpm = pm_pwserver_group = server_pwclient_group = client_pwtest_group = test_pw5,修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略,以下是参考:[groups]project_p = pmproject_s = server_groupproject_c = client_groupproject_t = test_group[project:/]@project_p = rw* =

>【备:】

上面改成:   [/]

【备:结束】

[project:/server]@project_p = rw@project_s = rw* =[project:/client]@project_p = rw@project_c = rw* =[project:/doc]@project_p = rw@project_s = rw@project_c = rw@project_t = rw* =以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录.6,修改svnserve.conf文件,让用户和策略配置升效.svnserve.conf内容如下:[general]anon-access = noneauth-access = writepassword-db = /home/svn/project/conf/passwdauthz-db = /home/svn/project/conf/authz

【备:可以将passwd 和authz 文件放在/home/svn/conf 下,然后每个项目的svnserve.conf文件中指明:password-db = /home/svn/conf/passwd    和  authz-db = /home/svn/conf/authz】

7,启动服务器# svnserve -d -r /home/svn8,测试服务器# svn co svn://192.168.60.10/projectAuthentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: server_groupPassword for 'server_group':svn: Authorization failed ( server_group没用根目录的访问权 )# svn co svn://192.168.60.10/projectAuthentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18dPassword for 'root':Authentication realm: 92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername: pmPassword for 'pm':A    project/testA    project/serverA    project/clientChecked out revision 1.  ( 测试提取成功 )# cd project/server# vim main.c# svn add main.c# svn commit main.c -m "测试一下我的C程序,看什么看,不行啊??"Adding         main.cTransmitting file data .Committed revision 2.  ( 测试提交成功 )三,配置SVN服务器的HTTP支持1,转换SVN服务器的密码由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。我写了一个Perl脚本完成这个工作.脚本内容如下:# cd /home/svn/project/conf/# cat PtoWP.pl#!/usr/bin/perl# write by huabo, 2009-11-20use warnings;use strict;#open the svn passwd fileopen (FILE, "passwd") or die ("Cannot open the passwd file!!!\n");#clear the apache passwd fileopen (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!\n");close (OUT_FILE);#beginforeach () {if($_ =~ m/^[^#].*=/) {$_ =~ s/=//;`htpasswd -b webpasswd $_`;}}# ./PtoWP.pl ( 先给该脚本加可执行权限,然后执行以转换密码 )Adding password for user pmAdding password for user server_groupAdding password for user client_groupAdding password for user test_group现在目录下会多一个webpasswd文件。2,修改httpd.conf,添加关于SVN服务器的内容编辑/etc/httpd/conf/httpd.conf,在最后添加如下信息:DAV svnSVNPath /home/svn/project/AuthType BasicAuthName "svn for project"AuthUserFile /home/svn/project/conf/webpasswdAuthzSVNAccessFile /home/svn/project/conf/authzSatisfy allRequire valid-user3,启动HTTPD服务器# service httpd restartStopping httpd:                                            [FAILED]Starting httpd:                                            [  OK  ]4,用浏览器访问http://192.168.60.10/project/server/测试测试结果如下图所示:

( 测试成功 )四,配置邮件提醒支持1,安装Perl模块Module::Build# wget http://search.cpan.org/CPAN/authors/id/D/DA/DAGOLDEN/Module-Build-0.36_11.tar.gz# tar xvf Module-Build-0.36_11.tar.gz# cd Module-Build-0.36_11# perl Build.PL# ./Build# ./Build test# ./Build install# cd ..2,安装Perl模块Authen::SASL# wget http://search.cpan.org/CPAN/authors/id/G/GB/GBARR/Authen-SASL-2.15.tar.gz# tar xvf Authen-SASL-2.15.tar.gz# cd Authen-SASL-2.15# perl Makefile.PL# make test# make install# cd ..3,安装Perl模块Net::SMTP_auth# wget http://search.cpan.org/CPAN/authors/id/A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz# tar xvf Net-SMTP_auth-0.08.tar.gz# cd Net-SMTP_auth-0.08# perl Makefile.PL# make test# make install# cd ..4,安装Perl模块SVN::Notify# wget http://search.cpan.org/CPAN/authors/id/D/DW/DWHEELER/SVN-Notify-2.80.tar.gz# tar xvf SVN-Notify-2.80.tar.gz# cd SVN-Notify-2.80# perl Build.PL# ./Build# ./Build test# ./Build install# cd ..5,启动邮件服务器# service sendmail restartShutting down sendmail:                                    [FAILED]Starting sendmail:                                         [  OK  ]Starting sm-client:                                        [  OK  ]6,配置自动发邮件脚本修改post-commit脚本,以支持邮件通知功能.# cd /home/svn/project/hooks/# vim post-commit内容如下:#!/bin/shREPOS="$1"REV="$2"/usr/bin/svnnotify --repos-path "$1" --revision "$2" --to caodaijun@pica.com --from caodaijun@feinno.com --handler "HTML::ColorDiff"  --with-diff --smtp localhost --smtp-user root --smtp-pass 5201314318 -c "UTF-8" -g zh_CN -o raw --svnlook /usr/bin/svnlook --subject-prefix '[SVN Update]'(to参数代表接收邮件的地址,可以有多个,当你有多个老大的时候,这就很重要了,:)。from参数是虚拟的,代表你的发送地址,一般情况下,这个参数 不重要,但如果接收者的邮件服务器有反垃圾邮件的功能,需要判定源地址的话,这个参数是否合法就显得很重要了)再给该脚本添加可执行权限# chmod +x post-commit7,再次提交时,就会给指定邮件地址发信了。如下图所示:

五,其它常用配置1,强制写log脚本配置pre-commit文件,要求用户每次更新文件都必须写log.# cd /home/svn/project/hooks/# vim pre-commit文件内容如下:#!/bin/shREPOS="$1"TXN="$2"SVNLOOK=/usr/bin/svnlookLOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`if [ "$LOGMSG" -lt 5(要求的log长度,依实际需要修改) ];thenecho -e "\nEmpty log message not allowed. Commit aborted!" 1>&2exit 1fi配置完成后,给本件加上可执行权限。再提交代码时,就必须按要求写注释了,:)2,可修改log脚本配置pre-revprop-change文件,此文件在show log中修改log时会运行,得到修改的权限,否则会报错:DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent. At least one property change failed; repository is unchanged# cd /home/svn/project/hooks/# vim pre-revprop-change文件内容如下:REPOS="$1"REV="$2"USER="$3"PROPNAME="$4"if ["$PROPNAME" = "svn:log"];then exit 0;fiexit 1配置完后加可执行权限升效。六,备份管理svn服务器的定期备份是很重要的,最简单的方式是定时备份仓库目录。1,新建备份目录# mkdir /opt/project_backup2,编写备份脚本# cd /home/svn/# vim project_backup.sh内容如下:#!/bin/bash#write by huabo, 2009-11-20cd /home/svnnow=`/bin/date +%Y%m%d`/bin/tar czvf "project_backup_$now.tar.gz" project/ && rm -rf /opt/project_backup/* && /bin/mv project_backup_*.tar.gz /opt/project_backup/if [ $? == 0 ]thenresult="OK!!"elseresult="False!!"fi#send mail to administrator/bin/mail caodaijun@pica.com -s "project_backup_$now" < project.log# cd SvnStat-1.0# java -classpath SvnStat-all.jar de.agentlab.svnstat.SvnStat -jar SvnStat-all.jar -r /root/project.log -d /var/www/html/5,用浏览器登录即可看到许多统计出来的图表。大致如下图所示:

(俺的测试代码很少,生成的图不成样子,拿官方的图来充当一下,:))

八,用statsvn分析SVN数据1,下载statsvn# wget http://downloads.sourceforge.net/project/statsvn/statsvn/0.7.0/statsvn-0.7.0.zip?use_mirror=jaist# unzip statsvn-0.7.0.zip# cd statsvn-0.7.02,生成statsvn数据# mkdir /var/www/html/statsvn# java -jar statsvn.jar -verbose -output-dir /var/www/html/statsvn/ /root/project.log /root/project3,用浏览器测测试效果如下图:

九,配置codestriker.1.安装codestriker依赖的perl包.# perl -MCPAN -e 'install "Template"'2.下载codestriker# wget http://downloads.sourceforge.net/project/codestriker/codestriker/1.9.10/codestriker-1.9.10.tar.gz?use_mirror=jaist&ts=1279246587# mkdir /var/www/codestriker# cd /var/www/codestriker# tar xvf /path/codestriker-1.9.10.tar.gz# chown -R apache.apache codestriker-1.9.103.配置数据库# service mysqld restart# mysql -uroot mysql执行:CREATE DATABASE codestrikerdb CHARACTER SET utf8;GRANT SELECT,INSERT,UPDATE,DELETE,INDEX,ALTER,CREATE,DROP,REFERENCES ON codestrikerdb.* TO codestriker@localhost IDENTIFIED BY 'cspasswd';FLUSH PRIVILEGES;quit4.配置codestriker# cd codestriker-1.9.10/# vim codestriker.conf注意以下几点(详细可查看codestriker的安装文档)a.数据库的用户名密码要配对b.svn的数据仓库要配对,我的如下:@valid_repositories =('svn:file:///home/svn/project',)5.执行codestriker的安装脚本# cd bin/# ./install.pl6.配置http支持# vim /etc/httpd/conf/httpd.conf在最后面加上如下内容:Alias /codestriker/  /var/www/codestriker/codestriker-1.9.10/cgi-bin/Alias /codestrikerhtml/  /var/www/codestriker/codestriker-1.9.10/html/SetHandler perl-scriptPerlHandler ModPerl::RegistryOptions +ExecCGIAllowOverride NoneAllow from all7.重启HTTP服务器# service httpd restart

【备:】

在svnserve.conf:文件中去掉authz-db = authz前面的#号,会出现的认证失败。

造成此原因的主要问题就是authz文件中权限没有配置好。

例如:

创建prj1库

svnadmin create prj1

修改配置文件

svnserve.conf:

[general]

anon-access = read

auth-access = write

password-db = passwd

authz-db = authz

passwd

[users]

tom = tom

authz:

[groups]

project_1 = tom

[prj1:/]

@project_1 = rw

访问

svn://192.168.1.105/prj1

则会出现认证失败

原因是:

svn://192.168.1.105/prj1 访问时找不到tom对应的库,就是因为[prj1:/]不是一个有效的库路径

把[prj1:/]改为[/]既可以了,[/]代表根目录下所有的资源,如果要限定资源,可以加上子目录即可。

【备份与恢复】

linux中SVN备份有三种方式

1、svnadmin dump 是官方推荐的备份方式,优点是比较灵活,可以全量备份也可以增量备份,并提供版本恢复机制。

缺点是版本数过大,增长到数万以上,那么dump与load过程都将非常慢,耗时长不利于快速进行灾难恢复。在版本数较小的情况下可以使用这种备份方式。

2、svnadmin hotcopy 只能进行全量拷贝,不能进行增量备份。优点是备份较快,恢复也快。缺点是比较耗费硬盘。

3、svnsync实际是制作2个镜像库,当一个坏了的时候可以迅速切换到另一个。需1.4以上版本支持,这里不讨论。

svnadmin dump方式:

1、全量备份一个仓库:

#svnadmin dump /svn/svn/APP > /svn/svndump/APP_dump160802

在另一台机器上配置同样的SVN服务器导入dump出来的备份文件

#svnadmin load /svn/svn/APP

将原先服务器的配置文件备份后复制到新服务器中 authz、passwd、svnserver.conf

2、增量备份

#svnadmin dump /svn/svn/APP -r 5200:5600 --incremental > /svn/svndump/APP_5600

5200是上次全量备份时的最新版本,5600是当前最新版本。

导入:svnadmin load /svn/svn/APP

svnadmin hotcopy方法:1. 备份

svnadmin hotcopy /svn/svn/APP/ /data/svn.`date +%F:%T`.bak –clean-logs

如果传递–clean-logs选项,svnadmin会执行热拷贝操作,然后删除不用的Berkeley DB日志文件。你可以在任何时候运行这个命令得到一个版本库的安全拷贝,不管其它进程是否使用这个版本库。2. 还原

svnadmin hotcopy /home/svn.`date +%F:%T`.bak  /home/svn.`date +%F:%T`.bak

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554451.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搜狐视频怎么设置自动连播

本文播放器家园网小编给大家分享搜狐视频怎么设置自动连播&#xff0c;如果大家在使用搜狐视频过程当中遇到类似问题&#xff0c;欢迎阅读本文!搜狐视频拥有独立的播放界面&#xff0c;软件采用独立的播放界面进行播放&#xff0c;用户点击喜欢的影视播放之后不会干扰您对影视资…

PP视频怎么设置可以运行多个客户端

今天继续给大家分享PP视频方面的内容。PP视频怎么设置可以运行多个客户端。PP视频客户端是国内领先的视频播放器&#xff0c;以 “快者为王”为产品理念&#xff0c;注重用户体验&#xff0c;为用户提供视频播放,视频发布,视频搜索,视频分享功能&#xff0c;充分满足用户日益增…

android 怎么刷机,android系统怎么刷机

安卓系统手机如何刷机&#xff1f;大致可以说明如下&#xff1a;android手机的刷机&#xff0c;就相当于给它重装一下系统&#xff0c;这和我们常见的电脑重装系统类似。刷机前先对自己手机中的一些重要内容进行备份吧&#xff0c;像名片&#xff0c;短信&#xff0c;日历等重要…

android创建空文件,ADT 更新 eclipse srclayout 文件夹创建时候为空

今天是14-3-9&#xff0c;发现SDK Manager有更新&#xff0c;手贱点了一下。。。然后新建项目src和layout文件夹就成空的了。。。虽然可以手动建立内容&#xff0c;但是感觉很不爽&#xff0c;到处找解决方法&#xff0c;最后在贴吧找到了&#xff0c;内容链接到了eoe&#xff…

迅雷加载项会导致IE9浏览器崩溃

核心提示&#xff1a;相信很多网友今天启动电脑后的第一件时间就是下载IE9beta&#xff0c;看到IE浏览器的新界面以后感觉确实比之前的版本要简洁很多&#xff0c;色彩的搭配也更加舒服了。安装完毕以后立即打开浏览器体验&#xff0c;随便输入了一个网页打开即报错崩溃了。严重…

Win10系统浏览器字体乱码如何解决

核心提示&#xff1a;[Win10系统浏览器字体乱码如何解决?一起看看吧!](http://www.f8pc.cn/rjjc/66390.html) 目前&#xff0c;部分电脑用户在升级了Win10系统之后&#xff0c;都遇到了一些使用上的问题&#xff0c;其中&#xff0c;遇到浏览器出现乱码这个问题的电脑用户还真…

html语言循环语句,Scala @功能/语言的HTML文档 - for循环,如果语句等

我正在一个控制器的视图(HTML页面)中&#xff0c;我试图匹配复选框中的“选中”值的列表中。Scala 功能/语言的HTML文档 - for循环&#xff0c;如果语句等我从模型中抓取选定的复选框值(列表A)&#xff0c;将它们在控制器中抓取并发送到视图。我还从模型中获取复选框选择/选项/…

Win7系统浏览器的兼容模式如何设置

核心提示&#xff1a;Win7系统浏览器的兼容模式如何设置?一起看看吧! Win7系统浏览器的兼容模式怎么设置?下面2345软件大全小编给大家介绍。 一、兼容性视图设置。 1、打开IE 浏览器。 2、选择“工具”—“兼容性视图设置”。 3、在“在兼容性视图中显示所有网站”前面勾…

百度自动推送html5,百度暂停 JS 代码自动推送功能,代码是否需要删除?

本月上旬末的时候百度站长平台就推送了一则关于&#xff1a;搜索资源平台自动推送暂停使用通知。说到由于升级维护&#xff0c;搜索资源平台链接提交-自动提交-自动推送(JS 代码推送)功能暂时停止使用。并且会在恢复使用时再次通知。由于这条通知是百度通过搜索资源平台发送的站…

ie浏览器如何截图

核心提示&#xff1a;经常有朋友问小编&#xff0c;IE浏览器怎么截图&#xff0c;小编就来回答一下。 ie浏览器如何截图&#xff1f;经常有朋友问小编&#xff0c;IE浏览器怎么截图&#xff0c;小编就来回答一下。现在很多人都依然在使用Windows7系统&#xff0c;而且大多数人…

html中表格布局还是div布局,Table布局 VS Div+CSS布局,选哪个?

Table布局 和 DivCSS布局的争论&#xff0c;过了7-8年了&#xff0c;今天看到一篇文章《为什么我们不建议用Table布局》&#xff0c;又想发表下自己的见解&#xff0c;供初学《为什么我们不建议用Table布局》节选&#xff1a;Table要比其它html标记占更多的字节。(延迟下载时间…

ie浏览器发送错误报告提示怎么关闭

ie浏览器发送错误报告提示怎么关闭 ie浏览器发送错误报告提示怎么关闭?在我们使用IE浏览器时&#xff0c;有时浏览器出现问题&#xff0c;提示到“Microsoft Internet Explorer遇到问题需要关闭…… ”。如果我们点击“发送错误报告”&#xff0c;就会创建错误报告发送出去;如…

html背景图片尺寸位置百分比,css – 如何计算背景大小百分比?

根据W3C Specs&#xff1a;A percentage is relative to the background positioning area.和background positioning area是基于background-origin属性的border-box或padding-box或content-box之一.这里没有为此明确指定任何值,因此使用其默认值padding-box.此元素没有填充,因…

狐狸盗宝记

狐狸盗宝记——金丝猴有一只宝匣&#xff0c;里面装着许多宝石。狐狸见了&#xff0c;十分眼红。 一天&#xff0c;狐狸假装去金丝猴家玩。私下里&#xff0c;他摸清了金丝猴家门锁秘密和藏宝匣的地方&#xff0c;作好了偷盗的准备。 隔天&#xff0c;金丝猴驾着小轿车&#…

用计算机计算电力系统故障,用计算机计算电力系统故障的方法.ppt

用计算机计算电力系统故障的方法第六章 用计算机计算电力系统故障的方法 6-1 概述 手算 → 计算台(直流&#xff0c;交流) → 计算机(模拟机&#xff0c;数字机) 6-1 概述(续) 二、主要过程 6-2 等值网络及其节点方程 一、系统的等值网络及其数学描述 (一)等值网络 1. 电源 其中…

计算机桌面锁写快捷,电脑如何锁屏幕 锁屏快捷键是什么

锁屏幕是用户们日常生活中的必备玩法,很多玩家们却不知道游戏中应该如何锁屏幕,那么具体应该如何锁屏幕呢?下面小编带大家一起来看下电脑如何锁屏幕吧!电脑怎么锁屏幕?电脑如何锁屏幕?1、首先自然是需要为电脑创建一个密码。点击开始按钮&#xff0c;然后找到控制面板&#…

下载腾讯视频极速版_怎么退出腾讯视频登录

软件是否好用&#xff0c;还得大家下载腾讯视频安装才知道。本文分享下载腾讯视频极速版_怎么退出腾讯视频登录。腾讯视频不断实践"三网合一"的使命&#xff0c;现已覆盖互联网、电视、移动三大终端&#xff0c;兼具影视、综艺、资讯三大内容形态&#xff0c;贯通视频…

PP视频如何查看上下集的快捷键

这篇文章主要说的是PP视频如何查看上下集的快捷键&#xff0c;希望可以帮助大家。PP视频手机版是一款装机必备的手机视频播放软件&#xff0c;用户可在线观看PP视频全部免费高清正版视频&#xff0c;海量内容&#xff0c;高清画质&#xff0c;自由点播&#xff0c;配合先进的P2…

计算机专业怎样提升竞争力,新形势下如何提高计算机专业学生就业竞争力.doc...

新形势下如何提高计算机专业学生就业竞争力新形势下如何提高计算机专业学生就业竞争力摘 要&#xff1a;受经济社会和 IT市场发展的影响&#xff0c;高校学生的就业形势越来越严峻&#xff0c;提高学生的就业竞争力至关重要。本文分析造成就业困难的原因&#xff0c;认为提高计…

腾讯视频免费下载安装_怎样下载腾讯视频里的视频

本文小编给大家分享的是腾讯视频免费下载安装_怎样下载腾讯视频里的视频。腾讯视频放器是腾讯视频旗下的视频客户端产品&#xff0c;支持丰富内容的在线点播及电视台直播。相比其它的视频客户端&#xff0c;腾讯视频的多维度筛选&#xff0c;大数据比对&#xff0c;更有利于用户…