VisualsvnServer跨版本库迁移目录且保留日志
Posted jamnine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VisualsvnServer跨版本库迁移目录且保留日志相关的知识,希望对你有一定的参考价值。
title: VisualsvnServer跨版本库迁移目录且保留日志
categories: 实用教程
date: 2019-10-16 10:30:33
tags: [SVN,Visualsvn Server,编程开发,实用教程]
thumbnail: https://user-images.githubusercontent.com/24422140/74628026-7860bb80-518f-11ea-834d-f36ec373377a.jpg
有这样一个问题,
现在有一份代码code在版本库Nine.net/Nine.Basic/下,现在想把它移动到JamBlog/source/下
环境
├─VisualsvnServer
│ ├─Nine.net
│ │ │─Nine.Basic
│ │ └─xxxx
│ ├─JamBlog
│ │ └─source
需要达到的目的
1. 将代码移动到新的版本库
2. 将原始的提交记录保留
本来打算用svn move来做的,后来发现因为是不同的版本库,所以这个想法走不通
一下以Windows为例,使用的是windows10
主要分为几个步骤:
I 进入VisualSVN Server,服务端,迁移命令都是server端执行
II 导出需要迁移的代码库
III 过滤导出代码库中需要的代码
IV 导入过滤后的代码进入新的代码库
实现
I 进入VisualSVN Server安装目录,
注意,svn命令是在svn client端执行的,svnadmin svnserver svndumpfilter都是在svn server端执行的
命令:
cd C:Program FilesVisualSVN Serverin
II 导出需要迁移的代码库
命令:
指令格式:svnadmin dump 版本库源目录 > 目标文件
svnadmin dump D:同步文件夹OneDriveRepositoriesNine.net > Nine.netBack
命令解析:
将“D:同步文件夹OneDriveRepositoriesNine.net”整个版本库导出至“Nine.netBack”这个文件中;“prog1”文件存放在当前目录,且不含扩展名;
注意:
Windows下,“版本库源目录”必须为包含format文件的目录,是存放文件的实际物理路径,非SVN服务器的相对路径;
III 过滤导出代码库中需要的代码
如果需要转移的源目录非根目录的,可使用svndumpfilter指令,将实际要转移的源目录从刚刚生成的文件中提取出来,并放到一个新文件中;在目标目录下导入时则使用这个新生成的文件;否则转移目录就是根目录则跳过这一步
svndumpfilter include Nine.Basic <Nine.netBack> Nine.netBack2
命令解析
将Nine.net中的Nine.Basic过滤出来,svndumpfilter include表示只保留制定的目录和文件,这句命令中指定的目录和文件就是Nine.Basic
注意:
此时过滤后生成了新的文件Nine.netBack2,执行最后导入的时候要注意别导入了整个版本库的原文件
IV 导入过滤后的代码进入新的代码库
1.
svnadmin load D:同步文件夹OneDriveRepositoriesJamBlog < Nine.netBack2
2.
svnadmin load D:同步文件夹OneDriveRepositoriesJamBlog --parent-dir source < Nine.netBack2
命令解析:
两个命令二选一,本文章中需要导入到source目录,则选择第二个命令
1.将“Nine.netBack2”整个版本库导入至“D:同步文件夹OneDriveRepositoriesJamBlog” JamBlog” 这个版本库的根目录下 ;
2.将“Nine.netBack2”整个版本库导入至“D:同步文件夹OneDriveRepositoriesJamBlog” JamBlog” 这个版本库的source目录下 ;
3.--parent-dir source 导入到 source 目录,此为版本库下的目录,若果是source下的xxx目录
则需要在此更改目录--parent-dir source/xxx,而不是在前面版本库处增加子级目录
注意:
导入到指定目录的时候需要先进行手动创建该目录,例如这里是导入到source目录,则我们需要先创建source目录
***svn中区分大小写,svn中区分大小写,svn中区分大小写
至此成功把代码库成功跨版本版本库迁移,且保留相关的提交记录
参考文章:
https://blog.csdn.net/helenfish/article/details/9984555
https://blog.csdn.net/tianshijianbing1989/article/details/41980675
以上是关于VisualsvnServer跨版本库迁移目录且保留日志的主要内容,如果未能解决你的问题,请参考以下文章
Windows上操作,VisualSVN Server迁移备份步骤