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

SVN版本库的迁移

    博客分类:
  • SVN
阅读更多
1:
经过SVN搭建,权限配置和强制写日志的工作之后,今天的任务是把原来其它分散的各个版本库统一迁移到新的版本库,集中统一管理。要求不改变原有的版本库的内容和版本号。

2:
要实现版本库的无缝迁移,必须通过以下3个步骤:
①导出旧的版本库
②导入新的版本库
③通知客户端切换版本库分支

首先来看第一步:导出旧的版本库。我们知道SVN提供了check out命令和export命令签出,导出版本库中的内容。对于版本库内容比较少的情况这种方法可以采用。但是如果版本库中内容比较多,那么这种方法就显得 很笨重了,而且还涉及到版本号改变的问题。所以首先摈弃这种做法。

我们知道Oracle提供了export/import命令来将数据库导出成一个二进制文件,然后导入。同样的SVN也提供了一对命令:dump和 load。不同的是这两个命令导出的是文本内容(肉眼可以读懂)。而且还有一次性导出和增量导出,单版本导出与多版本导出等多种选择操作,就是这个了。

其次我们来看“通知客户端切换版本库分支”。在我们完成服务器端的版本迁移之后,必须通知客户端运行切换分支的命令,否则客户端的提交还是提交到旧的版本库去。SVN也为我们准备了这样的命令:svn switch。

3:
首先我们来看一下SVN的dump和load命令

①svnadmin dump命令语法
svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]

svnadmin dump命令用于导出整个Repository或Repository下的某个范围的修订版本。REPOS_PATH是版本库的路径,[-r LOWER[:UPPER]]用于指定导出的修订版本范围,由参数-r和两个用:号隔开阿拉伯数字组成。例如:-r 0:50表示导出才版本0到版本50之间的所有修订版,-r是revision的缩写。

而另一个关键参数是--incremental。它使用增量方式来导出版本,即每次都只导出自上一个版本以来的修改。这样的好处是第一:可以把一个大的文 件切分成若干个小的文件。第二:在版本库已经存在的情况下,我们只需要每次导出修改的部分,不需要每次都导出整个版本库的内容。甚至可以通过hook脚本 每天晚上自动将当天的修改dump出来做备份用。

②svnadmin load命令语法
svnadmin load REPOS_PATH

svnadmin load命令用于从标准输入流/其它流中导入版本库,REPOS_PATH是要导入的目标版本库。

③dump和load的输出/入重定向
svnadmin dump myrepos > dumpfile

svnadmin load newrepos < dumpfile

默认情况下dump和load命令分别输出到默认输出设备(屏幕)和从默认输入设备(键盘)导入。但我们也可以把输出流/输入流重定向。例如上面的第一个 命令,使用重定向符>把屏幕的输出定向当前目录下的dumpfile,而第二个命令从当前目录下的dumpfile文件导入。

上面的命令使用起来已经很方便了,那么还有没有更加方便的用法呢?当然有!就是使用管道命令把两个命令合二为一。
svnadmin dump myrepos  | svnadmin load newrepos
分享到:
评论

相关推荐

    svn版本库迁移方法

    ### SVN版本库迁移方法 #### 一、概述 在软件开发过程中,经常会出现需要将Subversion(SVN)版本库从一个服务器迁移到另一个服务器的情况。这种迁移可能是因为硬件升级、服务器搬迁或是为了提高性能等原因。为了...

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

    以下是两种常见的SVN版本库迁移方法: ### 第一种方法:相同操作环境下的迁移 **前提条件**: 1. 旧版本库和新版本库的操作系统相同。 2. SVN的版本一致,以确保兼容性。 3. 旧版本库的版本号不低于本地SVN库,...

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

    该描述说明了作者对 SVN 版本库迁移和自动备份的总结,并希望与读者一起学习和进步。 标签:“SVN” 该标签表明了本文的主题与 SVN 相关。 部分内容 本文的部分内容包括两个部分:业务目标和相关指令。 业务...

    Windows SVN Apache TortoiseSVN配置安装 svn版本库迁移.doc

    Windows环境下配置SVN、Apache和TortoiseSVN的过程,以及SVN版本库的迁移,涉及到多个关键知识点。首先,让我们深入了解这些组件。 1. **TortoiseSVN**: TortoiseSVN是Subversion的Windows shell集成客户端,提供...

    VisualSVN Server的版本库迁移步骤

    在进行VisualSVN Server版本库迁移时,首先需要明确迁移的场景需求。这些需求包括但不限于服务器切换、服务器重装系统、版本库整合以及数据备份等。该迁移过程适用于那些不频繁需要进行版本库迁移的场合。在进行迁移...

    利用svnsync同步SVN版本库

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

    SUSE安装新SVN,并导入之前SVN版本库操作手记

    要将旧版本库迁移到新安装的SVN,通常需要以下步骤: - 备份旧版本库。 - 在新SVN服务器上创建一个空版本库。 - 使用`svnadmin load`命令将旧版本库的数据加载到新版本库中。这通常涉及将旧版本库的备份文件...

    vss库迁移到svn库

    标题中的“vss库迁移到svn库”是指将基于Visual SourceSafe(VSS)的版本控制系统中的代码库转换到Subversion(SVN)系统的过程。这个迁移过程通常是为了升级版本控制系统的功能,或者因为团队已经从VSS转向了对SVN...

    SVN仓储数据整体迁移

    本文档详细介绍了如何进行SVN仓储数据的整体迁移,确保在新服务器上保留所有版本号和版本信息。 一、SVN仓库概述 SVN仓库是SVN系统的核心,它存储了项目的所有历史版本,包括文件和目录的更改。每个版本都有唯一的...

    vss库迁移到SVN库的操作方法

    【VSS库迁移到SVN库的操作方法】 Visual SourceSafe(VSS)是一款由Microsoft开发的版本控制系统,而Subversion(SVN)则是一个开源的版本控制系统,被广泛用于项目协作和源代码管理。在某些情况下,用户可能需要将...

    vss库迁移到SVN库的工具

    标题中的“vss库迁移到SVN库的工具”指的是将Visual SourceSafe(VSS)版本控制系统中的项目库转换到Subversion(SVN)版本控制系统的工具。这通常是因为开发者或团队希望从VSS的老系统转向更现代、更广泛使用的SVN...

    svn资源迁移

    SVN资源迁移是指将一个Subversion(SVN)仓库及其所有历史数据从一个服务器迁移到另一个服务器的过程。这个过程通常涉及多个步骤,以确保数据的完整性和可用性。以下是一个详细步骤的说明: 1. **停止HTTP服务**: ...

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

    5. SVN库迁移: - **复制数据**:将旧版本库的全部内容复制到新位置。 - **更新URL**:在客户端,更新工作副本的URL指向新的服务器地址。 - **重置序列号**:在新库的`db`目录中,确保`format`文件的版本号与旧库...

    SVN版本管理详解-08210246.pdf

    最后,SVN对于CVS用户而言,提供了从CVS到Subversion的转换工具,帮助用户平滑迁移他们的版本库。WebDAV和自动版本化的介绍则拓展了SVN的功能范围,使其可以进行更广泛的自动版本控制操作。术语表为读者提供了重要的...

    如何将SVN项目迁移至Git

    在软件开发过程中,版本控制系统是不可或缺的工具,SVN(Subversion)和Git都是常见的版本管理软件。然而,随着Git的普及,很多开发者选择将原有的SVN项目迁移到Git上,以便利用Git的分布式特性、分支管理和强大的...

    SVN仓库数据整体迁说明

    本文将详细讲解如何将一台服务器上的SVN仓库数据迁移到另一台机器上,保留所有的版本号和版本信息。这个过程可以分为三步:导出仓库、创建新仓库和导入仓库数据。 Step 1: 导出仓库数据 为了将仓库数据迁移到新...

    CVS迁移SVN工具亲测可用

    【CVS迁移SVN工具亲测可用】 在软件版本控制领域,CVS(Concurrent Versions System)和SVN(Subversion)都是广泛使用的系统。CVS曾是许多项目的主要选择,但随着时间推移,SVN因其更先进的特性和更好的管理功能而...

Global site tag (gtag.js) - Google Analytics