`
chunanyong
  • 浏览: 58340 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

SVN版本库的备份、还原、移植(初级篇、中级篇和高级篇)

    博客分类:
  • svn
阅读更多

初级篇:

 

       版本库数据的移植:svnadmin dumpsvnadmin load

导出:

$svnlook youngest myrepos //查看到目前为止最新的版本号

$svnadmin dump myrepos > dumpfile //将指定的版本库导出成文件dumpfile

导入:

$svnadmin load newrepos < dumpfile

 

中级篇:

$svnadmin dump myrepos –r 23 >rev-23.dumpfile           //version23导出

$svnadmin dump myrepos –r 100:200 >rev-100-200.dumpfile  //version100~200导出

对比较大的库可以分解成几个文件导出,便于备份

$svnadmin dump myrepos –r 0:1000 >0-1000.dumpfile

$svnadmin dump myrepos –r 1001:2000 --incremental >1001-2000.dumpfile

$svnadmin dump myrepos –r 2001:3000 --incremental >2001:3000.dumpfile

在导入时,可以将这几个备份文件装载到一个新的版本库中

$svnadmin load myrepos < 0-1000.dumpfile

$svnadmin load myrepos < 1001-2000.dumpfile

$svnadmin load myrepos < 2001:3000.dumpfile

  

  

高级篇:

    过滤版本库历史:

       假设有三个项目的版本库

       /RigTMS

       /DocProtect

       /Odin

       现需要将这三个项目转移到独立的三个版本库中,需要做如下操作

       1、转储整个版本库

       $svnadmin dump /path/to/repos > repos-dumpfile

       2、将转储文件三次过滤,每次仅保留一个定级目录,即可以得到三个转储文件

       $svndumpfilter include RigTMS < repos-dumpfile > RigTMS-dumpfile

$svndumpfilter include DocProtect < repos-dumpfile > DocProtect-dumpfile

$svndumpfilter include Odin < repos-dumpfile >Odin-dumpfile

       3、虽然现在的RigTMSDocProtectOdin都可以用来创建一个可用的版本库,但他们保留了原版本库的精确路径结构(例如: RigTMS的顶级目录为/RigTMS/trunk/RigTMS/branches/RigTMS/tags而非我们所需要的/trunk/branches/tags),如果要实现目标,需要编辑转储文件,调整Node-pathCopyfrom-path头参数,将路径/RigTMS删除,同时还要转储数据中创建RigTMS目录的部分。

       Node-pathRigTMS

       Node-actionadd

       Node-kinddir

       Content-length0

*****特别注意点:如果使用手工编辑dumpfile文件来移除一个顶级目录,需要注意不要让使用的编辑器将换行符转换为本地格式(比如将\r\n转换为\n),否则文件的内容就与原来的格式不符,这个转储文件就失效了。具体做法就是当你在使用编辑器打开文件的时候,编辑器会提示用户是否需要转换格式,一定要选择“否”,切记!!切记!!

       4、接下来就是创建三个新的版本库,然后将新过滤出来并修改好的三个转储文件导入

       $svnadmin create RigTMS;svnadmin load RigTMS < RigTMS-dumpfile

       $svnadmin create DocProtect;svnadmin load DocProtect < DocProtect-dumpfile

       $svnadmin create Odin;svnadmin load Odin < Odin -dumpfile

 

 

****备份环境注意点:

       1、确保没有其他进程访问版本库,关闭apachesvnserve服务

       2、成为版本库的管理员,如果以其他身份还原版本库,可能会改变版本库文件的访问权限,导致在恢复后依旧无法访问

       3svnadmin recover /path/to/repos

       4、重新启动服务进程

 

 

************************************

pre-revprop-change.bat

 

set repos=%1

set rev=%2

set user=%3

set propname=%4

set action=%5

for /f??"usebackq"? ?%%k in? ?(`svnlook author %repos% -r %rev%`)? ?do? ?@set??var=%%k

set rightUser=0

if "%3" == "%superUser%"??set rightUser=1

if "%3" == "%var%" set rightUser=1

if %rightUser% == 0 goto ERROR_USER

goto :SUCCESS_EXIT

:ERROR_USER

echo 只允许用户修改自己的日志 >&2

goto ERROR_EXIT

:ERROR_EXIT

exit 1

:SUCCESS_EXIT

exit 0

 

 

************************************

pre-commit.bat

 

setlocal

set REPOS=%1

set TXN=%2

rem check that logmessage contains at least 5 characters

svnlook log "%REPOS%" -t "%TXN%" | findstr ".........." > nul

if %errorlevel% gtr 0 goto err

exit 0

:err

echo 提交必须写日志!>&2

exit 1

 

************************************

分享到:
评论

相关推荐

    SVN版本库备份与恢复

    SVN 版本库备份与恢复 本文档将详细介绍 SVN 版本库的备份与恢复过程,涵盖了从备份已有项目到恢复新的版本库的所有步骤。...通过上述步骤,我们可以成功地备份和恢复 SVN 版本库,从而确保了版本库的安全和可靠性。

    SVN版本库备份操作脚本

    完全备份是指对SVN版本库的完整复制,包括所有文件、目录和版本历史记录。这一步骤确保在灾难性事件发生时,可以恢复到某一特定时间点的完整状态。备份日志则记录了每次备份的时间、大小和状态等信息,有助于监控...

    svn版本库迁移方法

    全局备份是指对整个版本库进行备份,包括所有的数据和历史记录。这种方式可以确保在新环境中能够完全恢复所有信息。具体的备份命令如下: ```bash svnadmin dump /data/svn/repository &gt; /data/repository-backup....

    windows下svn异地备份与还原

    在Windows环境下,Subversion(简称svn)作为一款广泛使用的版本控制系统,对于团队协作和项目管理起着至关重要的作用。为了防止数据丢失,确保项目的连续性和稳定性,svn的异地备份与还原策略是必不可少的。本文将...

    SVN备份操作(包括完全备份,增量备份和同步版本库)

    Subversion(简称SVN)作为一款广泛使用的集中式版本控制系统,在备份方面提供了多种机制来满足不同场景的需求,主要包括完全备份、增量备份以及版本库同步等方法。 #### 二、完全备份 完全备份是最基础也是最直接...

    svn代码库如何备份到本地

    ### SVN代码库备份到本地的方法 #### 背景与目的 版本控制系统Subversion(简称SVN)是一种广泛使用的源代码管理系统,它帮助开发者管理项目的各个版本及其变更历史。在日常开发过程中,为了防止数据丢失或者便于...

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

    本文总结了 SVN 版本库无损迁移与自动备份的方法,旨在帮助读者快速实现版本库的迁移和自动备份。下面将对标题、描述、标签和部分内容进行详细解释。 标题:“SVN 版本库无损迁移与自动备份” 该标题明确地表明了...

    SVN备份还原清理BAT

    对网上的SVN备份、还原、清理几天之前的备份进行了测试与修改。 全量备份:fullbackup.bat(使用前先修改目录)、hotcopy.bat 增量备份:svndump.bat(使用前先修改目录)、dump.bat、projectlist.conf(使用前先修改svn...

    svn配置库全量备份脚本

    全量备份是指备份整个SVN配置库,包括所有的文件、目录和版本历史。在描述中提到的“通过网络映射进行全量备份”意味着备份过程可能涉及将远程服务器上的配置库复制到本地网络位置,这通常通过网络共享或SFTP等协议...

    svn安装和配置 库备份和迁移

    在这个主题中,我们将深入探讨SVN的安装和配置,以及如何进行库的备份和迁移。 1. SVN安装: - **Windows**:在Windows上,可以使用VisualSVN Server,它提供了一个易于使用的图形界面来管理SVN服务器。 - **...

    svn备份还原方法

    ### SVN备份与还原详解 #### 一、SVN简介 Subversion(简称SVN)是一种分布式版本控制系统,广泛应用于软件开发和其他需要...通过上述步骤,可以有效地完成SVN仓库的备份和还原过程,确保项目数据的安全性和完整性。

    SVN项目版本库模板

    "SVN项目版本库模板"通常是指一组预配置的SVN目录结构和文件,旨在为新项目提供一个标准起点,简化项目的初始化过程。 **SVN版本库的组成部分:** 1. **仓库(Repository)**:这是SVN存储所有版本化文件的地方。...

    利用svnsync同步SVN版本库

    利用svnsync同步SVN版本库,将之前主库上的SVN数据迁移到VisualSVN上,然后在实现版本库的远程自动备份,版本库备份到另一台机器上。

    SVN版本库的迁移(从一台服务器迁移到另一台服务器)

    **SVN 版本库迁移**是当原始服务器出现问题或者需要更换硬件、升级软件环境时必要的操作。迁移过程确保了代码版本控制系统的连续性,不影响团队的开发工作。以下是两种常见的SVN版本库迁移方法: ### 第一种方法:...

    SVN配置库备份方案

    标题中的“SVN配置库备份方案”指的是在软件开发中如何使用Subversion(SVN)进行版本控制系统配置库的备份策略。Subversion是一个开源的版本控制系统,用于跟踪项目文件的更改,便于团队协作和代码管理。配置库是...

    SVN搭建与备份经典

    这篇文档主要介绍了如何搭建SVN服务器,创建版本库,配置安全机制,以及如何进行备份和恢复,确保数据的安全性和完整性。 **1. SVN 服务器和客户端安装** 在搭建SVN服务器时,首先需要安装服务器程序。常见的SVN...

    svnserver备份脚本及还原说明.rar

    svnserver备份脚本,其中包含了备份repository,压缩备份文件、复制备份文件到远程计算机和还原备份说明。svn服务器的时间格式要改成YYYY-MM-DD,不然Backup.bat脚本会报错。最好不要使用svnserver4以上的版本,因为...

    svn admin dump备份

    svn admin dump是Subversion官方推荐的一种备份方式,用于备份svn存储库和恢复svn存储库。该方法可以确保svn存储库的安全和可靠性。 svn admin dump备份的优点是可以将svn存储库备份到一个文件中,并可以使用gzip...

    svn版本库,桌面服务器,客户端打包版

    在这个“svn版本库,桌面服务器,客户端打包版”中,包含了创建和管理SVN版本库所需的全部组件。 首先,让我们深入了解一下SVN的核心组成部分: 1. 版本库(Repository):这是SVN存储所有版本化文件的地方。...

    svn备份、还原与迁移操作手册.docx

    备份、还原和迁移是 SVN 中三项非常重要的操作,以下是关于 SVN 备份、还原与迁移的知识点总结: 一、SVN 备份 SVN 备份是指将 SVN 仓库中的所有数据导出到一个文件中,以便在将来恢复或迁移数据。备份可以是全库...

Global site tag (gtag.js) - Google Analytics