SVN备份原代码操作步骤参考

合集下载

SVN备份说明

SVN备份说明

团队里有一台SVN服务器,空间达到了几十个G,之前一直是隔段时间全盘拷贝备份,但是感觉太烦锁了,前段时间做了将这台服务器SVN的内容同步到另一台服务器上,挺好用的,总结一下,过程:操作系统:windows server 2008SVN:VisualSVN Server服务器:A表示原来代码服务器,B表示同步服务器备份服务器安装与A相同的VisualSVN Server版本1.在B上的环境变量(path)添加:C:\Program Files (x86)\VisualSVN Server\bin 添加这一步主要是为了下面用到SVN的命令不用输路径2.创建库,由于A服务器已有了很多库,所以做成了批处理文件的方式,文件内容如下:svnadmin create 盘符:/Repositories/项目库1svnadmin create 盘符:/Repositories/项目库2……项目库1、2的名称与A里的一样然后执行这个批处理文件,然后Repositories会出现很多库文件夹了……3..创建目标库的hooks文件,文件名为pre-revprop-change.bat,内容为空,先放在..\sysmodel 目录下4.将上步创建的文件拷到每个库文件夹下,跟上步一样,用批处理文件,文件内容:copy /y 本地盘符:\Repositories\sysmodel\pre-revprop-change.bat 盘符:\Repositories\项目库1\hookscopy /y 本地盘符:\Repositories\sysmodel\pre-revprop-change.bat 盘符:\Repositories\项目库2\hooks……然后执行这个批处理文件5.关联A与B里的库(初始化),还是用批处理:svnsync init file:///本地盘符:/Repositories/项目库1 项目库1的SVN路径(在A服务器上的)svnsync init file:///本地盘符:/Repositories/项目库2 项目库2的SVN路径(在A服务器上的)……然后执行这个批处理文件,这一步是将A的内容同步下来了,时间有点久……6.到上一步,B与A的内容一致了,但是如果A上某个库的项目库有更新怎么办呢?这时要用到windows里的任务计划功能了(1)新建同步库.bat的批处理,内容如下:svnsync sync file:///本地盘符:/Repositories/项目库1svnsync sync file:///本地盘符:/Repositories/项目库2……(2)新建任务计划,在计划里调用上一步建立的批处理文件。

svn备份方案

svn备份方案

svn备份方案SVN(Subversion)是一种版本控制系统,广泛用于软件开发和团队协作中。

为了保护和恢复代码库,在使用SVN时备份是非常重要的。

本文将介绍一种可行的SVN备份方案,以确保代码的安全性和可靠性。

一、需求分析在制定备份方案之前,我们首先需要了解备份的需求。

根据实际情况,我们需要考虑以下几方面的需求:1. 数据的完整性:备份的数据应与原始数据完全一致,不可出现数据丢失或损坏情况。

2. 备份频率:备份的频率应根据代码更新的频率来确定,以确保备份数据的时效性。

3. 存储空间:备份数据的存储空间应合理控制,避免过多的空间占用。

4. 数据恢复:备份方案应包含数据的快速恢复方式,以便在需要时能够快速恢复代码。

二、备份方案基于以上需求,我们可以采用以下的SVN备份方案:1. 定期备份:根据代码更新的频率,制定定期备份策略,例如每天、每周或每月备份一次。

可以借助计划任务、Cron或其他定时调度工具来实现自动备份。

2. 完全备份:每次备份时,将整个SVN代码库文件夹进行完全备份,确保备份数据的完整性。

3. 增量备份:为了节省存储空间,可以在首次备份后,只备份新增或修改的文件和目录,而不是全量备份整个代码库。

这样可以减少备份数据量,加快备份速度。

4. 备份存储位置:将备份数据存储在不同于原始代码库的位置,以避免单点故障。

可以选择使用本地磁盘、网络共享存储或云存储等方式,确保备份数据的安全性。

5. 数据恢复测试:定期进行数据恢复测试,验证备份数据的可用性和恢复速度。

通过测试,及时修复备份方案中的问题,确保在数据丢失时能够快速恢复。

6. 备份日志记录:对备份过程进行日志记录,包括备份时间、备份内容等信息,以便后期跟踪备份记录和查询备份历史。

三、备份方案实施在实施备份方案时,需要按照以下步骤进行:1. 确定备份方案:根据实际需求,确定合适的备份方案,包括备份频率、备份策略和存储位置等。

2. 配置备份脚本:根据选定的备份方案,编写相应的备份脚本。

SVN备份脚本

SVN备份脚本

备份步骤:1、备份脚本svndump.bat通过读取projectlist.conf(存放要备份的库的名称)的数据来依次对库进行备份(全部或增量)2、库首次备份时使用全部备份,且自动生成备份日志(读取log.conf文件里的说明),记录了已备份的文件名,用于后面还原时依次读取备份文件3、增量备份也会往备份日志中增加记录备注:1、需要把dump.bat,log.conf,projectlist.conf存放在备份文件存放的目录(如本例的:z:\\SVN_backup_AF.12.03)================================================================================================ projectlist.conf================================================================================================ ;**************************************************;1. test_10439; 更新频率:;**************************************************test_10439;**************************************************;2. test_back; 更新频率:;**************************************************test_back================================================================================================ log.conf================================================================================================ #QUOTE:#备份日志:#//这是一个日志文件的抬头信息,可以记录一些有意义的信息##这里是我的项目库备份日志实例##QUOTE:#备份日志:================================================================================================ svndump.bat================================================================================================ @echo on@echo ================================================@echo 说明:启动备份时,需要配置两个环境变量@echo 1、SVN_HOME 指定svn的安装目录@echo 2、RAR_CMD 指定RAR命令行压缩工具所在目录@echo 3、SVN_REPOROOT 指定项目库的根目录(多库模式)@echo 另外,如果需要异地备份,可以指定为网络映射Z盘@echo ================================================rem set logfile=svndump.logset SVN_HOME=E:\freescm\freescm\SVN\binset SVN_ADMIN=%SVN_HOME%\svnadmin.exeset SVN_LOOK=%SVN_HOME%\svnlook.exeset SVN_REPOROOT=E:\freescm\freescm\SVN\REPOset RAR_CMD="C:\Progra~1\WinRAR\WinRAR.exe"rem if not exist z:\nul net use z: \\SVN_backup_AF.12.03z:cd Z:\SVN_backup_AF.12.03rem 读取项目库列表文件,并忽略其中;开头的行FOR /f "eol=;" %%C IN (projectlist.conf) DO @call dump.bat %%C@pause========================================================================================== dump.bat==========================================================================================@ECHO onrem 调用格式:dump 项目库名if "%1"=="" goto no_argsset PROJECT=%1if not exist %PROJECT% mkdir %PROJECT%cd %PROJECT%SET LOWER=0SET UPPER=0@FOR /f %%D IN ('%SVN_LOOK% youngest %SVN_REPOROOT%\%PROJECT%') DO set UPPER=%%Dif %UPPER%==0 GOTO :N_EXITif not exist %PROJECT%_last_revision.txt GOTO :BAKUPrem 取出上次备份后的版本号,并做+1处理(注意此算法未在98系统验证)@FOR /f %%C IN (%PROJECT%_last_revision.txt) DO @set LOWER=%%C@set /a LOWER=%LOWER%+1rem 不需要备份,则跳转结束IF %LOWER% gtr %UPPER% GOTO :N_EXIT:BAKUPSET FILENAME=%PROJECT%_%LOWER%_%UPPER%@ECHO 开始备份项目库:%PROJECT%,生成文件=%FILENAME%%SVN_ADMIN% dump %SVN_REPOROOT%\%PROJECT% -r %LOWER%:head --incremental >%FILENAME%.dmp%RAR_CMD% a -df %PROJECT%_%LOWER%_%UPPER%.rar %FILENAME%.dmprem 准备写备份日志信息IF %LOWER% gtr 0 GOTO :WRITENOTEif not exist %PROJECT%_log.txt @copy ..\log.conf %PROJECT%_log.txt@ECHO #%date% >> %PROJECT%_log.txt@echo #-- 添加备份文件 >> %PROJECT%_log.txt@echo %PROJECT%_%LOWER%_%UPPER% >> %PROJECT%_log.txt@echo #从[%LOWER%]到[%UPPER%] >> %PROJECT%_log.txtGOTO :COMPLETE:WRITENOTE@ECHO #%date% >> %PROJECT%_log.txt@echo #-- 添加增量备份文件 >> %PROJECT%_log.txt@echo %PROJECT%_%LOWER%_%UPPER% >> %PROJECT%_log.txt@echo #从[%LOWER%]到[%UPPER%] >> %PROJECT%_log.txt:COMPLETErem 下面一行用于拷贝备份文件到映射的驱动器上rem copy %PROJECT%.rar z:\%PROJECT%\@echo %UPPER% > %PROJECT%_last_revision.txt :N_EXIT@echo 项目库%PROJECT%处理结束...@CD..@exit /B:no_args@ECHO ON@echo "正确调用方法: dump 项目库名"。

SVN备份原代码操作步骤参考【精选】

SVN备份原代码操作步骤参考【精选】

SVN备份原代码操作步骤参考1.删除先前备份过的缺陷代码:操作如下:右击鼠标(任意位置),选择Repo-browser:找到备份地址(http://192.168.2.97/storage/IPTV_HeBei/开发库/Java/备份/Code/IPTV_HeBei_Java_V1.02_20110509)这是本次地址,以后会有更新:直接删除前两天的备份:2.打标签3.注:∙打标签的目录必须以发布版本的标签来标示。

∙每次出版本后必须立即备份原码,如果版本原码有更新,应立即删除原先的备份,再新备份。

多屏MSAS_Java_V1.01_20110901源码备份以下是附加文档,不需要的朋友下载后删除,谢谢顶岗实习总结专题13篇第一篇:顶岗实习总结为了进一步巩固理论知识,将理论与实践有机地结合起来,按照学校的计划要求,本人进行了为期个月的顶岗实习。

这个月里的时间里,经过我个人的实践和努力学习,在同事们的指导和帮助下,对村的概况和村委会有了一定的了解,对村村委会的日常工作及内部制度有了初步的认识,同时,在与其他工作人员交谈过程中学到了许多难能可贵经验和知识。

通过这次实践,使我对村委会实务有所了解,也为我今后的顺利工作打下了良好的基础。

一、实习工作情况村是一个(此处可添加一些你实习的那个村和村委会的介绍)我到村村委会后,先了解了村的发展史以及村委会各个机构的设置情况,村委会的规模、人员数量等,做一些力所能及的工作,帮忙清理卫生,做一些后勤工作;再了解村的文化历史,认识了一些同事,村委会给我安排了一个特定的指导人;然后在村委会学习了解其他人员工作情况,实习期间我努力将自己在学校所学的理论知识向实践方面转化,尽量做到理论与实践相结合。

在实习期间我遵守了工作纪律,不迟到、不早退,认真完成领导交办的工作。

我在村委会主要是负责管理日常信件的工作,这个工作看似轻松,却是责任重大,来不得办点马虎。

一封信件没有及时收发,很有可能造成工作的失误、严重的甚至会造成巨大的经济损失。

SVN仓库自动备份方法

SVN仓库自动备份方法

SVN仓库自动备份方法SVN(Subversion)是一种版本控制系统,用于有效地管理文件和目录的版本。

为了确保数据的安全性和可靠性,将SVN仓库自动备份是至关重要的。

下面是一种SVN仓库自动备份的方法,包括以下步骤:1. 选择合适的备份存储介质:可以选择将备份存储在本地服务器的硬盘上,也可以将其存储在云存储服务(如Amazon S3、Google Cloud Storage)或其他远程服务器上。

选择恰当的备份存储介质是自动备份的第一步。

2. 创建备份脚本:使用Shell脚本、Python脚本或其他脚本语言编写一个备份脚本,用于执行SVN仓库的备份操作。

该脚本包含以下功能:a.检查SVN仓库的最新修改时间:使用SVN命令或其他相关命令,获取SVN仓库的最新修改时间。

这将用于判断是否需要进行备份操作。

b.备份SVN仓库:如果最新修改时间与上一次备份时间不一致,说明SVN仓库已经发生了变化,需要进行备份操作。

使用SVN命令将SVN仓库导出到指定的备份存储介质中,确保所有版本的文件和历史记录都可以恢复。

c.更新备份时间:备份完成后,更新备份时间,以便下一次备份可以正确判断是否需要备份。

3. 定时执行备份脚本:使用计划任务(Cron)或其他任务调度工具,设置定时任务,以便自动执行备份脚本。

可以选择每天、每周或每月等频率进行备份。

确保备份脚本能够准时执行,以保证SVN仓库的定期备份。

4.监控备份过程:在备份过程中,监控备份脚本的执行情况,确保备份操作成功完成。

可以在脚本中添加日志记录,以便对备份过程进行跟踪和分析。

如果备份失败或出现错误,及时采取相应的措施进行修复。

5.测试备份数据的恢复:定期测试备份数据的恢复功能,以确保备份数据的完整性和可用性。

可以选择随机选择几个版本进行恢复,并进行验证,确保所有文件和历史记录都可以正确恢复。

以上便是一种SVN仓库自动备份的方法。

通过创建备份脚本、定时执行备份脚本、定期监控备份过程和测试备份数据的恢复功能,可以确保SVN仓库的数据安全性和可靠性。

SVN迁移及备份的方法【转】

SVN迁移及备份的方法【转】

SVN迁移及备份的⽅法【转】备份策略==============svn备份⼀般采⽤三种⽅式:1)svnadmin dump2)svnadmin hotcopy3)svnsync.注意,svn备份不宜采⽤普通的⽂件拷贝⽅式(除⾮你备份的时候将库暂停),如copy命令、rsync命令。

笔者曾经⽤ rsync命令来做增量和全量备份,在季度备份检查审计中,发现备份出来的库⼤部分都不可⽤,因此最好是⽤svn本⾝提供的功能来进⾏备份。

优缺点分析==============第⼀种svnadmin dump是官⽅推荐的备份⽅式,优点是⽐较灵活,可以全量备份也可以增量备份,并提供了版本恢复机制。

缺点是:如果版本⽐较⼤,如版本数增长到数万、数⼗万,那么dump的过程将⾮常慢;备份耗时,恢复更耗时;不利于快速进⾏灾难恢复。

个⼈建议在版本数⽐较⼩的情况下使⽤这种备份⽅式。

第⼆种svnadmin hotcopy原设计⽬的估计不是⽤来备份的,只能进⾏全量拷贝,不能进⾏增量备份;优点是:备份过程较快,灾难恢复也很快;如果备份机上已经搭建了svn服务,甚⾄不需要恢复,只需要进⾏简单配置即可切换到备份库上⼯作。

缺点是:⽐较耗费硬盘,需要有较⼤的硬盘⽀持(俺的备份机有1TB空间,呵呵)。

第三种svnsync实际上是制作2个镜像库,当⼀个坏了的时候,可以迅速切换到另⼀个。

不过,必须svn1.4版本以上才⽀持这个功能。

优点是:当制作成2个镜像库的时候起到双机实时备份的作⽤;缺点是:当作为2个镜像库使⽤时,没办法做到“想完全抛弃今天的修改恢复到昨晚的样⼦”;⽽当作为普通备份机制每⽇备份时,操作⼜较前2种⽅法⿇烦。

备份的命令==============全备份:使⽤svnadmin dump或svnadmin hotcopy或svnsync来做,hotcopy:svnadmin hotcopy path/to/repository path/to/backup –clean-logsdump:svnadmin dump 版本库路径及名称 –revision 导出的版本号> 导出的命名增量备份:使⽤svnadmin dump的–incremental选项来实现svnadmin dump 版本库路径及名称 –revision 上次导出的版本号:到本次要导出到的版本号 –incremental > 导出的命名⼀个技巧:如果你有⼀个较⼤的Subsersion版本库⽽你⼜想⽤最少的空间来将它备份下来,⽤这个命令(请将/repo替换成你的版本库路径)吧:svnadmin dump –deltas /repo |bzip2 |tee dump.bz2 | md5sum >dump.md5分步解释:最重要的⼀步是 -deltas,将消耗更多的CPU资源,但拥有更有效的差异存储办法。

svn备份命令

svn备份命令
但是这样不是很安全的方式因为如果在拷贝时版本库发生变化将会造成备份的结果不够准确失去备份的作用为此subversion提供了svnadminhotcopy命令可以
svn备份命令
Svn备份命令
Svn全库备份 本地方式
导出:
Svnadmin dump 版本的路径及名称 –-revision 导出的版本号>导出的路径及民称 例 :svnadmin dump f:\\SVN\\itss –-revision 9 >f:\\***\\itss-9
导入:
Svnadmin load 要恢复的版本路径及名Байду номын сангаас <导出的路径及名称
例:svnadmin load f:\\SVN\\item < f:\\***\\itss-9
Svn增量备份 本地方式
Svnadmin dump 版本库路径及名称 –-revision 上次导出的版本号:到本次要导出到的版本号 –-incremental >导出文件的路径及名称

svnsync同步备份

svnsync同步备份
备份库:backup
源库:test
1、在要备份的机器上建立版本库
/usr/local/svn/bin/svnadmin create /svn/backup
2、进入备份机器版本库backup下的hooks目录。
cd /svn/backup/hooks/
3、创建pre-revprop-change文件
/usr/local/svn/bin/svnsync sync file:///svn/backup
8、修改权限文件,保证管理员能够访问目标库,检查备份情况
9、设置定时同步
1)在/svn下面创建脚本svnsync.sh
#!/bin/bash
/usr/local/svn/bin/svnsync sync file:///svn/backup --username XXX --password XXX
50 7 * * * root run-parts /etc/cron.daily ——每天7:50以root 身份执行/etc/cron.daily目录中的所有可执行文件[ 注:run-parts参数表示,执行后面目录中的所有可执行文件。 ]
2)chmod a+x /svn/svnsync.sh
3)在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
4)crontab -e,增加
1 * * * * /svn/svnsync.sh > /svn/svnsync.out
30 5 8 6 * ls ——指定每年的6月8日5:30执行ls命令
30 6 * * 0 ls ——指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

svn备份——精选推荐

svn备份——精选推荐

svn备份svn备份一般采用三种方式:1. svnadmin dump2. svnadmin hotcopy3. svnsyncsvn服务器的根目录是/svndatasvn,本来想直接把根目录打包就可以。

因为之前svn迁移,直接用scp就搞定了。

后来商讨了一下,用svnadmin hotcopy命令如下:svnadmin hotcopy /svndata/dts /opt/1/dts因为/svndata/目录下面有很多项目,我不想在shell里面写死。

一来是因为目录太多,二来是后续如果增加项目,又要改脚本,比较麻烦。

介绍一个shell,用来遍历目录。

之前看别人的shell遍历太复杂,看着头疼。

#!/bin/bashfor file in /svndata/*doif test -f $filethenecho $file 是文件fiif test -d $filethenecho $file 是目录fidone效果如下:/svndata/dts 是目录/svndata/fenci 是目录/svndata/kdy 是目录/svndata/message_bak 是目录......然后建立备份目录mkdir /opt/1/svndata修改下脚本,修改部分加粗显示#!/bin/bashfor file in /svndata/*doif test -f $filethenecho $file 是文件fiif test -d $filethen#echo $file 是目录svnadmin hotcopy $file /opt/1$filefidone执行脚本,没有输出查看目录[root@localhost opt]# ll /opt/1/svndata/drwxr-xr-x 6 root root 4096 9月8 13:41 dtsdrwxr-xr-x 6 root root 4096 9月8 13:41 fencidrwxr-xr-x 6 root root 4096 9月8 13:41 kdydrwxr-xr-x 6 root root 4096 9月8 13:41 message_bak完整的备份脚本svn_backup.sh如下:注意,我的svn根目录是svndata,请注意修改下#!/bin/bashecho “############################” &gt;&gt; /backup/svn.log statime=`date +%Y-%m-%d” “%H:%M:%S`echo “$statime svn开始备份” &gt;&gt; /backup/svn.log#创建备份目录timea=`date +”%Y%m%d”`mkdir -p /backup/svn/directory/$timea/svndatamkdir -p /backup/svn/gzip#遍历SVN所有项目,同时将遍历的目录一个个复制到备份目录for file in /svndata/*doif test -f $filethenecho $file 是文件fiif test -d $filethen#echo $file 是目录svnadmin hotcopy $file /backup/svn/directory/$timea$file fidone#备份目录打包压缩cd /backup/svn/gziptar zcvf svn_$timea.tar.gz /backup/svn/directory/$timeastatime=`date +%Y-%m-%d” “%H:%M:%S`echo “$statime svn备份完成” &gt;&gt; /backup/svn.log#删除3天前的备份文件find /backup/svn/gzip -mtime +2 -type f -name “*.tar.gz” -exec rm {} \;#删除备份svn目录rm -rf /backup/svn/directory/$timea最后设置任务计划执行就可以了有兴趣朋友可以了解更多java教程/java/video.shtml。

Windows下SVN双机备份实现

Windows下SVN双机备份实现

备份机上操作1.新建Repository2.在hooks下新建pre-revprop-change.bat空白文件3.执行初始化svnsync init file:///{之前新建立的Repository} {源代码地址URL}4.执行同步svnsync sync file:///{之前新建立的Repository}执行完上述步骤后备份机上代码已经和需要备份的代码完全一致源机操作(就是正常使用的代码服务器)在该机上操作时为了保证提交代码后自动同步到备份机器上1.在hooks目录下建立post-commit.bat文件(文件内容如下),每次提交代码该文件会自动执行以保证同步到备份服务器set SVN_HOME="C:\Program Files\VisualSVN Server"%SVN_HOME%\bin\svnsync sync --non-interactive {备份机URL} --username xxx --password xxxx2.赋予Visual Server执行bat文件的权限,如下图将超级管理员作为Visual Server登陆的账户3.由于备份机一般采用https的登陆验证方式,所以需要在源机上先执行一遍同步保证操作系统记住验证的信息,执行如下%SVN_HOME%\bin\svnsync sync --non-interactive {备份机URL}系统会提示是否信任,输入p然后可能会需要输入系统管理员的密码和备份机上的SVN用户名和密码(备份机上建立的Repository的用户名和密码)4.备份机网络延迟或者不通可能造成提交代码时报下面的类似错误。

该错误只是没有将提交的代码同步到备份机上,实际上代码已经提交到源机器上成功。

该错误可以忽略,因为每次有提交都会检查两边是否同步,只要最后提交的代码成功,之前提前失败未同步的代码也会同步过去。

SVN版本库无损迁移与自动备份

SVN版本库无损迁移与自动备份

SVN版本库无损迁移与自动备份引:最近正在做版本库迁移和自动备份,在网上找过一些相关资料,但都比较凌乱,让人很纠结,相信很多网友会遇到相同的问题,笔者根据自己的整理和实践结果总结了一套可操作(经过实际验证)的方案,打算用两篇博客与大家分享一下,供大家参考。

一、业务目标1、在不改变原来版本库的内容和版本号的前提下,把原来分散在多个服务器上的各个版本库统一迁移到一台服务器上的新版本库上。

2、实现新版本库的定时自动备份。

二、相关指令1、svnadmin dump命令语法svnadmin dump Repository_Path [-r LOWER[:UPPER]] [--incremental] (1)svnadmindump命令用于导出整个Repository或Repository下的某个范围的修订版本。

(2)参数说明:Repository_Path是版本库的路径,[-rLOWER[:UPPER]]用于指定导出的修订版本范围,由参数-r和两个用:号隔开阿拉伯数字组成。

例如:-r 0:100表示导出才版本0到版本100之间的所有修订版,-r是revision的缩写。

--incremental,它使用增量方式来导出版本,即每次都只导出自上一个版本以来的修改。

这样的好处是第一:可以把一个大的文件切分成若干个小的文件。

第二:在版本库已经存在的情况下,我们只需要每次导出修改的部分,不需要每次都导出整个版本库的内容。

甚至可以通过hook脚本,每天晚上自动将当天的修改dump出来做备份用。

2、svnadmin load命令语法svnadmin load Repository_Path(1)svnadminload命令用于从标准输入流/其它流中导入版本库,(2)参数说明:Repository_Path是要导入的目标版本库。

3、dump和load的输出/入重定向svnadmin dump oldRepository> dumpfilesvnadminload newRepository < dumpfile默认情况下dump和load命令分别输出到默认输出设备(屏幕)和从默认输入设备(键盘)导入。

SVN备份还原操作手册范本

SVN备份还原操作手册范本

SVN备份还原操作手册一、命令备份1.svnadmin dump全量备份进入SVN服务端安装目录下运行svnadmin dump命令(C:/Repositories/QA为SVN库中项目目录,full.svn.bak为备份文件名)2.svnadmin dump增量备份(以增量把版本库8转存到svn.bak.1,-r [--revision] :指定版本;--incremental :以增量方式进行转存)3.svnadmin dump还原(先创建一个新的版本库,再还原完全备份,有增量备份的再还原增量备份)(进入SVN服务端安装目录下调用命令创建test测试库)4.运行svnadmin load还原命令(增量还原同全量还原)二、脚本备份(针对项目库备份)1.svnadmin dump全量备份脚本(在SVN库中添加全量备份脚本backup.bat,需要安装对应的压缩工具)2.脚本内容rem Subversion的安装目录set SVN_HOME="C:\ProgramFiles\VisualSVNServer"rem 所有版本库的父目录set SVN_ROOT=C:\Repositoriesrem 备份的目录set BACKUP_SVN_ROOT=C:\bakrem 创建存放版本库的临时目录setBACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,4%%date:~5,2%%date:~8,2% if exist %BACKUP_DIRECTORY% goto checkBackecho %date:~0,4%%date:~5,2%%date:~8,2%:建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/backup.logrem SVN 版本库自动备份时需要rem创建备份目录md %BACKUP_DIRECTORY%cd C:\Program Files\VisualSVN Server\bin\svnadmin.exedump C:\Repositories\QA > %BACKUP_DIRECTORY%\FINANCE%date:~0,10%rem 验证目录是否为版本库,如果是则取出名称备份rem for /r%SVN_ROOT%%%I in(.)do@ifexist"%%I\conf\svnserve.conf"call%SVN_ROOT%\simpleBackup.bat"%%~f I"%%~nIecho 开始压缩版本库,请不要中止....rem %SVN_ROOT%\7z.exea-tzip%BACKUP_SVN_ROOT%\%date:~0,4%%date:~5,2%%date:~8 ,2%.zip%BACKUP_DIRECTORY%\*-r>nulecho 版本库压缩完成!rem 清除临时创建备份目录rem rd/s/q%BACKUP_DIRECTORY%goto end:checkBackecho 备份目录%BACKUP_DIRECTORY%已经存在,请清空。

SVN搭建与备份

SVN搭建与备份

SVN搭建与备份版本:1.0发布日期:2011-1-4 实施日期:2011-1-4修订记录目录修订记录 (2)1.SVN 服务器和客户端安装 (4)1.1.安装服务器程序 (4)1.2.安装客户端程序 (4)2.SVN 创建版本库 (4)2.1.多库管理模式 (4)3.SVN 安全配置 (7)3.1.用户设置 (7)3.2.用户组设置 (9)3.3.安全性设置 (10)3.4.在线修改密码 (13)4.备份恢复机制 (14)4.1.“定期大备份”的实现步骤 (14)4.2.实现脚本 (16)4.3.“时时小备份”的实现步骤 (21)4.4.配置库备份的还原 (22)5.使用Web 浏览器访问 (23)6.TortoiseSVN的基本使用方法 (24)6.1.签入资源到SVN服务器 (24)6.2.签出资源到本机 (26)6.3.提交修改过的文件到SVN服务器 (28)6.4.添加新文件到SVN服务器 (30)6.5.更新本机代码与SVN服务器上最新的版本一致 (30)6.6.重命名文件或文件夹,并将修改提交到SVN服务器 (31)6.7.删除文件或文件夹,并将修改提交到SVN服务器 (31)7.注意: (31)1.SVN 服务器和客户端安装1.1.安装服务器程序运行服务端程序VisualSVN-Server-2.1.5.msi,根据提示安装即可,这样我们就有了一套在服务器端运行的环境。

1.2.安装客户端程序运行TortoiseSVN_1.6.2.16344.msi按照提示安装即可,不过最后完成后会提示是否重启,其实重启只是使svn工作拷贝在windows中的特殊样式生效,与所有的实际功能无关,这里为了立刻看到好的效果,还是重新启动机器。

安装客户端语言包运行LanguagePack_1.6.2.16344-win32-zh_CN.msi注意:上述服务端和客户端程序均为开源软件,在使用过程中注意两者版本的统一。

SVN备份研究

SVN备份研究

1.全量备份的实现步骤最常见和简单的备份就是直接使用拷贝命令,将版本库目录拷贝到备份目录上就可以了.但是这样不是很安全的方式,因为如果在拷贝时版本库发生变化,将会造成备份的结果不够准确,失去备份的作用,为此使用提供的“svnadmin hotcopy”的命令,可以防止这种问题。

例如:有如下的SVN版本库F:/SVN_ROOT/00-Organization├─conf├─db│├─revprops││└─0│├─revs││└─0│├─transactions│└─txn-protorevs├─hooks└─locks现在将00-Organization备份到G:\SVN_FULL_BAK目录下。

1.1实现脚本全量备份,包含两个文件hotcopy.bat和最终执行文件fullBackup.bat。

1.1.1hotcopy.bat脚本:@echo 正在备份版本库%1……@%SVN_HOME%\svnadmin hotcopy %1 %BACKUP_DIRECTORY%\%2@echo 版本库%1成功备份到了%2!1.1.2fullBackup.bat脚本:rem Subversion的安装目录set SVN_HOME="D:\Program Files\svn-win32-1.6.6\bin"rem 所有版本库的父目录set SVN_ROOT=F:\SVN_ROOTrem 备份的目录set BACKUP_SVN_ROOT=G:\SVN_FULL_BAKset BACKUP_DIRECTORY=%BACKUP_SVN_ROOT%\%date:~0,10%if exist %BACKUP_DIRECTORY% goto checkBackecho 建立备份目录%BACKUP_DIRECTORY%>>%SVN_ROOT%/fullbackup.logmkdir %BACKUP_DIRECTORY%rem 验证目录是否为版本库,如果是则取出名称备份for /r %SVN_ROOT% %%I in (.) do @if exist "%%I\conf\svnserve.conf" hotcopy.bat "%%~fI" %%~nIgoto end:checkBackecho 备份目录%BACKUP_DIRECTORY%已经存在,请清空。

SVN版本库备份和恢复

SVN版本库备份和恢复

SVN版本库备份和恢复1.版本库备份1.1.svnadmin dump⽅式备份此⽅法借助的是Subversion官⽹推荐的svnadmin dump备份⽅式,它的优点是⽐较灵活,既可以进⾏全量备份⼜可以进⾏增量备份,并提供了版本恢复机制。

缺点是如果版本过⼤,如版本数增加到数万、数⼗万条时,则dump的过程很慢,备份时耗时,恢复备份库时更耗时,不利于快速进⾏灾难恢复,此⽅法建议在版本库较⼩的情况下采⽤。

a) 全量备份:命令格式为:svnadmin dump 版本库路径及名称 -r 导出的版本号 > 备份版本库存放路径及名称(-r是revision的缩写,也可以--revision代替)或 svnadmin dump 版本库路径及名称> 备份版本库存放路径及名称(不添加版本号时默认备份最⾼版本号)例如:1. 对project版本库的前10个版本进⾏备份,将备份⽂件保存到H盘的svn_back/dump⽂件夹中,进⼊cmd命令⾏,输⼊以下命令:svnadmin dump E:\Repository\project -r 10 > H:\svn_backup\dump\project.dump点击回车后,如图所⽰,已经将project版本库中的前10个版本进⾏备份。

2. 对project版本库的所有版本进⾏备份,将备份⽂件保存到H盘的svn_backup⽂件夹中,进⼊cmd命令⾏,输⼊以下命令:svnadmin dump F:\Repository\project>H:\svn_backup\project.dump点击回车后,如下图所⽰,已经将project版本库中的12个版本全部备份。

b)增量备份:增量备份主要使⽤svnadmin dump的 --incremental选项来实现,在对版本进⾏管理时,采⽤增量备份的⽅法,只需要对版本库从上次备份后的版本号开始进⾏备份即可,节省了对版本库备份时的时间及存放版本的硬盘资源。

SVN自动全备份与增量备份

SVN自动全备份与增量备份

SVN自动全备份与增量备份刚刚上班领导要一个做测试来配置SVN,说实话平时工作只会用,哪会配啊,没办法,谁叫领导安排了呢!SVN装起来简单,可领导发话要自动全备份和增量备份,这哪会啊,可是在网上一搜一大把的,看也看不懂,将就的弄了也是不成功,算了,还是找大牛帮我写个。

这得感谢我们家哥哥!牛掰的人物啊!SVN自动全备份脚本@echo offset ck=Productset yy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%set hh=%time:~0,2%set mn=%time:~3,2%set ss=%time:~6,2%set filename=%ck%-%yy%%mm%%dd%-%hh%%mn%%ss%svnadmin hotcopy D:\Repositories\Product\%ck% D:\SVN_FULL_BAK\%filename%第一个地址是SVN库的地址,第二个地址是你要备份文件的存放目录,此目录的文件名一定要存在哦!注意:该文件是放在bin目录下的哦!然后在控制面板-》管理工具-》任务计划程序中,将此任务添加进去就ok啦!SVN增量备份脚本echo onset yy=%date:~0,4%set mm=%date:~5,2%set dd=%date:~8,2%set hh=%time:~0,2%set mn=%time:~3,2%set ss=%time:~6,2%set filename=%yy%%mm%%dd%-%hh%%mn%%ss%set svn_repos="D:\Repositories\Product"set backup_dir="E:\SVN_COMMIT_BAK"set backup_file=weekly7_backup_%filename%svnlook youngest %svn_repos%>youngestfor /f "eol= tokens=*" %%i in (youngest) do set "youngest=%%i"::echo last back up revision:%youngest%>>above_back_filepausesvnadmin dump-r %youngest% %svn_repos% >%backup_dir%\%backup_file%-%youngest%--incremental --deltaspause::echo last back up date:%date:~0,10%>>above_back_file2014/6/19第一个地址是需要备份的库的目录,第二个地址是备份到哪个去的目录,该目录一定要存在哦!注意:该文件是放在SVN库的hooks文件夹下。

windowsSVN备份脚本

windowsSVN备份脚本

@echo offrem -----设置环境变量-------rem -----设置SVN目录--------setsvnpath=E:\Repositories\rem -----设置SVN备份目录-------setbackuppath=D:\temp\svn\rem ----日志文件路径------set LogFile=%backuppath%svnback.logrem -----备份时间---set backdate=%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%set backdate1=%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2% setlocalenabledelayedexpansionecho ------------------------------------------- >> %LogFile%echo %backdate1% 开始备份SVN操作>> %LogFile%echo ------------------------------------------- >> %LogFile%if not exist %BackupPath%%backdate% (md %BackupPath%%backdate%echo %backdate1% 创建备份目录成功>> %LogFile%)for /f %%I in ('dir %svnpath% /a:d /b') do (if exist %svnpath%%%I/hooks (md %BackupPath%%BACKDATE%\%%Iecho %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:开始备份%%I >> %LogFile%svnadminhotcopy %svnpath%%%I %BackupPath%%BACKDATE%\%%Iecho %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:完成备份%%I >> %LogFile%echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:开始压缩%%I >> %LogFile%rar a %BackupPath%%BACKDATE%\%%I.rar %BackupPath%%BACKDATE%\%%I echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:完成压缩%%I >> %LogFile%echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:开始删除%%I目录>> %LogFile%rd %BackupPath%%BACKDATE%\%%I /s/qecho %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:完成删除%%I目录>> %LogFile%))echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:SVN备份完成>> %LogFile%echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:开始删除历史备份版本>> %LogFile%rem 以下为删除历史备份信息,并设定最低保留数量rem 设置最大保留备份数量setmaxNum=2for /f "skip=%maxNum%" %%I in ('dir d: /a:d /o:-d /b') do (rd %BackupPath%%%I /s/qecho %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:删除%%I 成功>> %LogFile%)echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:完成删除历史备份版本>> %LogFile%@echo on。

SVN版本库备份与恢复

SVN版本库备份与恢复

假设SVN版本管理中存在名为Test的repository(版本库),该存储器在目录c:\repositories 中是作为一个文件夹存在的,需要建立的目标Repository名称为TestDump需要在命令行中进行如下操作:1、选择“VisualSVN Server (Local)”2、选择“操作”->“所有任务”->“Start Command Prompt”或点击工具栏最右侧图标即可出现以下命令提示框:3、导出已有项目:假设导出文件存在D盘根目录,文件名为Dumpfile。

在命令提示行中输入以下命令:Svnadmin dump c:\Repositories\Test(源文件夹绝对路径)> d:\ Dumpfile(导出文件的存放路径及名称:Dumpfile)点击回车,出现以下界面:执行完该命令,已有项目被成功导出到D盘根目录,名称为Dumpfile4、创建新的版本库,假设名称为DumpTest在命令行中输入命令:Scnadmin create /Repositories/TestDump(新版本库的相对存放路径),点击回车:执行完该命令,在C盘Repositories中成功创建了新的文件夹:DumpTest刷新VisualSVN Server,左侧树形结构新增了名称为“DumpTest”的版本库,如下图所示:5、将导出的文件导入到新的版本库TestDump中:在命令行中输入以下命令:Svnadmin load /Repositories/TestDump(目标相对路径)< c:/ dumpfile(源路径),点击回车,出现以下界面:再次刷新V isualSVN Server,出现了与Test完全相同的版本库,如下图所示:这时证明导入备份版本库成功。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档