C:\Program Files\VisualSVN Server\bin\svnadminload D:\Repositories\newRepository < E:\dumpfile1
方案3、导出后,在导入时对库做分库处理或其它处理操作过滤版本库历史。
假设有一个包含三个项目的版本库oldRepository:Project1,Project2,和 Project3。它们在版本库中的布局如下:
/
Project1/
trunk/
branches/
tags/
Project2/
trunk/
branches/
tags/
Project3/
trunk/
branches/
tags/
现在要把这三个项目转移到三个独立的版本库中。
①利用上面介绍的方案1导出整个版本库:
svnadmin dump oldRepository> dumpfile
②将转储文件三次送入过滤器,每次仅保留一个顶级目录,就可以得到三个转储文件:
cat dumpfile | svndumpfilter include Project1> 1-dumpfile
cat dumpfile | svndumpfilter include Project2 > 2-dumpfile
cat dumpfile | svndumpfilter include project3 > 3-dumpfile
注:cat是subversion的文档中,关于svndumpfilter介绍给出的命令,在windows下并没有,与cat类的命令是type,可以采用typedumpfile | svndumpfilter include Project1> 1-dumpfile
③这三个转储文件中,每个都可以用来创建一个可用的版本库,不过它们保留了原版本库的精确路径结构。
也就是说,虽然项目Project1现在独占了一个版本库,但版本库中还保留着名为Project1的顶级目录。如果希望trunk、tags和branches这三个目录直接位于版本库的根路径下,你可能需要编辑转储文件,调整Node-path和Copyfrom-path头参数,将路径Project1/删除。
同时删除转储数据中创建Project1目录的部分。一般为如下的一些内容:
Node-path: Project1
Node-action: add
Node-kind: dir
Content-length: 0
注:手工编辑转储文件来移除一个顶级目录时,不要让编辑器将换行符转换为本地式(比如将\r\n转换为\n),很容易造成转储文件失效。
④最后,我们可以采用方案1提供的方法,将三个转储文件分别导入:
svnadmin create Project1
svnadmin load Project1< 1-dumpfile
svnadmin create Project2
svnadmin load Project2< 2-dumpfile
svnadmin create Project3
svnadmin load Project3< 3-dumpfile
迁移版本库的解决方案就先写到这,下篇博客中,我们将介绍定时自动备份版本库的解决方案。
以上就是关于版本库的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-18892-2.html
别学苏联搞冷战
成为网络红人找网络推手阿建合作