VSStoSVN代码库迁移

开发 项目管理
本文向大家介绍一下VSStoSVN代码库迁移方案,主要使用两种工具向大家讲解,希望通过本文的学习大家能够掌握,VSStoSVN代码库迁移方案的方法。

本节和大家一起学习一下VSStoSVN代码库迁移方案,和大家分享一下,看完本文你肯定有不少收获,希望本文VSStoSVN代码库迁移内容讲解能教会你更多东西。
最近想把在VisualSourceSafe(VSS)上管理的代码库迁移到Subversion(SVN)中。但是不想丢弃VSS代码库上的历史,并且VSS代码库中有一部分目录和文件是中文的文件名。在经过大量的实验后终于把VSS代码库迁移到SVN了,并且中文目录、中文文件名还有历史版本信息能大部保留下来。在此把迁移心得分享出来,以免少走弯路。
市面上能进行VSStoSVN代码库迁移的工具有VSStoSVN和SVN-Importer,以下对两种工具进行介绍。
一、VSStoSVN
是一个perl语言编写的转移工具,其编译成exe的转移程序基本不支持中文目录和中文文件名。网上很多介绍,还有什么拷贝一个*.dll文件到system32目录下后就可以支持中文目录和中文文件名也是没有可进行性的。但是从理论上说如你您对perl语言比较了解,说不定在一个perl语言下,地VSStoSVN进行初基的改造就可以支持中文目录和中文文件名。但如果您的vss代码库中没有中文目录和中文文件名,这个工具是一个不错的选择。
二、SVN-Importer
本人使用此工具成功的把含有中文目录和中文文件名的vss代码库转换到svn代码库中,并且现在已正常使用,除了部分含中文文件名的*.doc文件没有完全的代码过来(中文文件名中有个别字还是乱码)。以下是使用SVN-Importer的必须条件,只能完全按照以下配置,才有把含有中文目录和中文文件名的VSS代码库迁移到SVN中的可能性。
2.1、必须使用JavaJDK1.4或IBMJAVASDK5.0作为SVN-Importer的Java运行环境。JavaJDK5.0、JavaJDK6.0作为Java运行环境时迁移出来的代码库中的中文基本就是乱码,具体原因没有研究。
2.2、如果Windows是中文版的操作系统,那恭喜你需要修改“控制面板”中的“区域和语言选项”。在vss版本库中,时间格式一般是hh:mm:ss,日期格式一般是MM/dd/yy。所以如果系统时间格式和日期格式与vss的不一致会导致SVN-Importer不工作。
2.3、svn版本库管理工具需要使用svn1.4或svn1.5版本。使用svn1.6时使用svnadminload导入damp文件时异常退出,原因不详。
三、配置SVN-Importer的config.properties
操作模式:SVNImporter有3种操作模式:完整、增量和列表。
(1)、完整模式用于将源VCS的版本库数据全部导出。
(2)、增量模式则用在第一次的完整模式之后,导出新增加的数据。
(3)、列表模式只将要导出的数据显示出来,不实际导出。
操作步骤:
1、修改配置文件
SVN-Importer是通过读取配置文件来决定执行方式的,能否成功的关键就是配置文件是否正确,下面我结合自己的实际过程说一下主要需要注意的配置参数

#Providersettings
srcprovider=vss设置源vcs是什么系统,可以是cvs、cvsrcs、pvcs、vss、cc、mks等,我此处是vss

#Importoptions
import_dump_into_svn=no是否将第三步和前两步连起来,我这里选择no
existing_svnrepos=no当import_dump_into_svn设置为yes时,如果这个选项也设置为yes,那么只有svn的仓库已经存在,数据才能导入到svn的仓库中
clear_svn_parent_dir=no如果这个被设为yes,并且import_dump_into_svn也设为yes,在导入数据之前,程序会删除所有在svn仓库父目录下的东东(只在完整模式下才有用)
use_only_last_revision_content=no如果设为yes,则只导出源VCS的最后一个版本的内容,请看VSStoSVN代码库迁移介绍中的其他内容。

#Fileoptions下面这些文件,都既可以是以相对路径指定的,又可以是以绝对路径指定的
full.dump.file=/data/cvs/full_dump.txt选择full方式dump,这个参数就会起作用,表示dump的结果文件
incr.dump.file=incr_dump.txt增量模式时生成的DUMP文件路径
incr.history.file=incr_history.txt历史文件路径,这个文件在第一次完整模式时生成,以后使用增量模式时需要读取其内容
list.files.to=src_type_file.txt列表模式,这个是指定第一步从源VCS系统取出的内容,还转化成svn的dump文件前的东东
dump.file.sizelimit.mb=0dump文件大小限制,0表示无文件大小限制

#Debugoptions
disable_cleanup=no如果这个设置为yes,则从源VCS系统导出的临时文件不会被删除

#SVNdumpoptions
trunk_path=trunk
branches_path=branches
tags_path=tags
svnimporter_user_name=SvnImporter产生第一个版本的用户
only_trunk=no是否只有trunk,如果选是,则只有trunk文件夹被导出到dump文件,branches和tags目录会被忽略

#SVNoptionssvn环境,只有import_dump_into_svn为yes的时候才起作用
svnadmin.executable=c:/svn/svnadmin.exesvnadmin工具的位置
svnadmin.repository_path=c:/SVN将被导入的目的仓库的路径
svnadmin.parent_dir=.dump出来的文件将被导入的目录,相对于仓库内的路径,.表示仓库的根目录,其他值则为相对于仓库根目录的子目录,该目录将作为导入内容的父目录
svnadmin.tempdir=c:/temp/local临时目录
svnclient.executable=c:/svn/svn.exesvn客户端工具的位置
svnadmin.verbose_exec=no如果设置为yes,则所有执行的svnadmin命令将被显示到终端。VSStoSVN代码库迁移介绍中SVNoptionssvn环境讲解完毕,下面看一下vssoptions。

#vssoptions
vss.class=org.polarion.svnimporter.vssprovider.VssProvider
vss.executable=c:\\VSS\\win32\\SS.exeVSS安装目录中的SS.exe命令程序
vss.path=c:/software/FS_Draft_VssDatabaseVSS版本库位置
vss.project=$/选择要导出的VSS版本库的相对路径
vss.username=adminVSS版本库的登录用户
vss.password=adminVSS版本库的登录密码
vss.tempdir=c:/temp/vsstemp临时目录
vss.log.dateformat=M/dd/yyHH:mm时间格式,这个特别要注意,设置错误后,将不能导出成功。
vss.log.datelocale=en时间对应的语言
vss.log.encoding=GB18030想成功导出含有中文目录和文件名必须设置成GB18030

#ifenabled-dumpoutputofvss.executablecommandtostdout
vss.verbose_exec=yes
#Logoptions日志记录,一般无需修改
log4j.rootLogger=DEBUG,stdout
本节关于VSStoSVN代码库迁移方案介绍完毕,请关注本节其他相关报道。

【编辑推荐】

  1. 术语汇编 SVN代码库简介
  2. 通过Apache访问SVN代码库配置专家讲解
  3. 配置本地SVN服务器简明步骤详解
  4. 专家在线指导如何搭建SVN服务
  5. 常用SVN目录结构使用的两大方法详解

 

责任编辑:佚名
相关推荐

2011-09-23 09:09:38

数据库迁移

2020-08-13 07:42:15

数据库Flyway代码

2020-07-24 12:30:58

AI 数据人工智能

2011-04-29 14:30:23

2011-05-11 10:26:36

MySQL数据库无缝迁移

2019-08-13 15:52:34

数据库同步迁移

2009-03-19 09:44:07

SQL Server数据库迁移数据库

2017-06-22 16:00:07

数据库NoSQL迁移实践

2010-05-26 18:32:07

SVN库

2010-03-18 09:28:14

Oracle数据库迁移

2009-03-19 09:50:25

迁移微软Analysis Se

2009-03-23 09:05:01

2021-11-15 08:24:17

数据库database同步工具

2017-11-22 09:20:41

数据库在线数据迁移Subscriptio

2019-10-16 11:40:56

数据库PostgreSQL Oracle

2011-03-31 14:33:57

SQL Server最小宕机迁移

2019-09-19 16:29:41

云数据库迁移DBaaS数据库

2018-08-02 11:04:41

数据库迁移数据

2020-08-10 09:07:00

数据库IT技术

2011-10-14 13:50:54

数据库迁移
点赞
收藏

51CTO技术栈公众号