SVN库迁移整理方法总结_第1页
SVN库迁移整理方法总结_第2页
SVN库迁移整理方法总结_第3页
SVN库迁移整理方法总结_第4页
SVN库迁移整理方法总结_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、SVN库迁移整理方法总结前段时间对项目SVN库做整理,顺带再次研究了下 SVN迁移的方式,整理如下:SVN数据库迁移方法一称之为SVN全库操作,或称SVN全局备份并恢复,版本库数据的移植:svnadmin dump、svnadmin load导出:$svnadmin dump repos > dumpfile / 将指定的版本库导出成文件 dumpfile新建 :$svnadmin create newrepos导入:$svnadmin load newrepos < dumpfileSVN数据库迁移方法二增量备份或批次备份 ,批次恢复,特定 reversion 导出 :$svna

2、dmin dump repos - r 23 >rev-23.dumpfile /将 version23 导出$svnadmin dump repos - r 100:200 >rev-100-200.dumpfile /将 version100200 导出批次导出 : 对比较大的库可以批次导出,便于备份$svnadmin dump repos - r 0:1000 >0-1000.dumpfile$svnadmin dump repos - r 1001:2000 -incremental >1001-2000.dumpfile$svnadmin dump repos

3、- r 2001:3000 -incremental >2001:3000.dumpfile批次导入,将这几个备份文件装载到一个新的版本库中$svnadmin load newrepos < 0-1000.dumpfile$svnadmin load newrepos < 1001-2000.dumpfile$svnadmin load newrepos < 2001:3000.dumpfileSVN数据库迁移方法三导出后 , 在导入时对库做分库整理或其它整理操作过滤版本库历史:假设有一个包含三个项目的版本库: calc , calendar ,和 spreadshee

4、t 。它们在版本 库中的布局如下:/calc/trunk/branches/tags/calendar/trunk/branches/tags/spreadsheet/trunk/branches/tags/现在要把这三个项目转移到三个独立的版本库中。首先,转储整个版本库:$ svnadmin dump /path/to/repos > repos-dumpfile* Dumped revision 0.* Dumped revision 1.* Dumped revision 2.* Dumped revision 3.然后, 将转储文件三次送入过滤器, 每次仅保留一个顶级目录, 就可

5、以得到三个转储文件: $ cat repos-dumpfile | svndumpfilter include calc > calc-dumpfile$ cat repos-dumpfile | svndumpfilter include calendar > cal-dumpfile$ cat repos-dumpfile | svndumpfilter include spreadsheet > ss-dumpfile 现在你必须要作出一个决定了。 这三个转储文件中, 每个都可以用来创建一个可用的版本库, 不过它们保留了原版本库的精确路径结构。 也就是说, 虽然项目 c

6、alc 现在独占了一个版本 库,但版本库中还保留着名为 calc 的顶级目录。如果希望 trunk 、 tags 和 branches 这 三个目录直接位于版本库的根路径下,你可能需要编辑转储文件,调整 Node-path 和 Copyfrom-path 头参数,将路径 calc/ 删除。同时,你还要删除转储数据中创建 calc 目 录的部分。一般来说,就是如下的一些内容:Node-path: calcNode-action: addNode-kind: dirContent-length: 0警告 :如果你打算通过手工编辑转储文件来移除一个顶级目录, 注意不要让你的编辑器将换行符转 换为本地

7、格式(比如将 rn 转换为 n )。否则文件的内容就与所需的格式不相符,这个转 储文件也就失效了。剩下的工作就是创建三个新的版本库,然后将三个转储文件分别导入:$ svnadmin create calc; svnadmin load calc < calc-dumpfile$ svnadmin create calendar; svnadmin load calendar < cal-dumpfile$ svnadmin create spreadsheet; svnadmin load spreadsheet < ss-dumpfile svndumpfilter 的两个

8、子命令都可以通过选项设定如何处理“空”修订版本。 如果某个指定 的修订版本仅包含路径的更改, 过滤器就会将它删除, 因为当前为空的修订版本通常是无用 的甚至是让人讨厌的。 为了让用户有选择的处理这些修订版本, svndumpfilter 提供了以下 命令行选项:-drop-empty-revs不生成任何空修订版本,忽略它们。-renumber-revs如果空修订版本被剔除(通过使用 -drop-empty-revs 选项),依次修改其它修 订版本的编号,确保编号序列是连续的。-preserve-revprops如果空修订版本被保留,保持这些空修订版本的属性(日志信息,作者,日期,自定义属性,等

9、等)。如果不设定这个选项,空修订版本将仅保留初始时间戳,以及 一个自动生成的日志信息,表明此修订版本由 svndumpfilter 处理过。尽管 svndumpfilter 十分有用,能节省大量的时间,但它却是把不折不扣的双刃剑。首先, 这个工具对路径语义极为敏感。仔细检查转储文件中的路径是不是以斜线开头。也许 Node-path 和 Copyfrom-path 这两个头参数对你有些帮助。Node-path: spreadsheet/Makefile如果这些路径以斜线开头,那么你传递给svndumpfilterin elude和svndumpfilter exclude的路径也必须以斜线开头(

10、反之亦然)。如果因为某些原因转储文件中的路径没有统一使用 或不使用斜线开头,也许需要修正这些路径,统一使用斜线开头或不使用斜线开头。此外,复制操作生成的路径也会带来麻烦。Subversion支持在版本库中进行复制操作,也就是复制一个存在的路径,生成一个新的路径。问题是,svndumpfilter 保留的某个文件或目录可能是由某个 svndumpfilter排除的文件或目录复制而来的。也就是说,为了确保转储数据的完整性,svndumpfilter需要切断这些复制自被排除路径的文件与源文件的关系,还要将这些文件的内容以新建的方式添加到转储数据中。但是由于Subversion版本库转储文件格式中仅包

11、含了修订版本的更改信息,因此源文件的内容基本上无法获得。如果你不能确定版本库中是否存在类似的情况,最好重新考虑一下到底保留/排除哪些路径。备份环境注意点:1 、确保没有其他进程访问版本库,关闭apache、svnserve服务2 、成为版本库的管理员,如果以其他身份还原版本库,可能会改变版本库文件的访问权限,导致在恢复后依旧无法访问3 、svnadmin recover /path/to/repos4 、重新启动服务进程SVN数据库整理方法不经过dump,load操作,实现SVN数据库整理操作,先设计好调整后的目录,然后打开版本 库,选中要调整或转移的文件(文件夹)-> 右键拖住,不要松

12、手-> 然后将要转移的文件(文 件夹)拖至目标文件夹-> 松手-> 选择move items to here- 完成-L_J httpHICimhDEt 铀囲FfllARit+ Ljtrrt la tnjfik01rarniCsec 卞曲議 JEMKR rv 山1叭更虬i» mt拓2jrfltjraIS61.7 W71.3 虚惟煽aoi(H-7 M*?咆MlOfl-7 14;3:40Ml帖 J-pfii-fhlpdf邛肝播 H 阵fll-dbc|iTi_FftQ-d3cbiTiqJMDem±ptf.doc p#2E-mm345 KfiEOJM-7 I4;5

13、2;«301IH-7301IM-7 14:3:40110-9-7 |4:33:U1屁證EEC济仲迎呎沖raaOlO-9-7 1440I:1 3敬箱H寸可母MM呃冲JiP301 IM寸 l-l:K:*0L.1 tEcfooectooc>JT "3010-9-71.td26adwr71XIJD-9-? I4'3Z:1CLockEilifHan RjBYHEcn AuthcrDjtv每经过这样的调整,大家都会担心历史记录是否还会存在,TortoiseSVN在默认情况下,是 不会显示出来的,需要将一个选项去除5howrg 30 revisefrem revisioni 9)24 to rswion 9969 1 revisiDn(s) selected. fflHiderhanged paths響口喫b遍3 ts不娶n选此选顷HelpShowPan-gp.T Next IDORefreshnInclude merged

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论