码迷,mamicode.com
首页 > 其他好文 > 详细

VisualsvnServer跨版本库迁移目录且保留日志

时间:2020-07-09 22:09:06      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:art   使用   实用   一个   文件的   ***   code   repo   csdn   


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 Files\VisualSVN Server\bin

II 导出需要迁移的代码库

命令:

指令格式:svnadmin dump 版本库源目录 > 目标文件

svnadmin dump D:\同步文件夹\OneDrive\Repositories\Nine.net > Nine.netBack

命令解析:
将“D:\同步文件夹\OneDrive\Repositories\Nine.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:\同步文件夹\OneDrive\Repositories\JamBlog < Nine.netBack2
2.
svnadmin load D:\同步文件夹\OneDrive\Repositories\JamBlog --parent-dir source < Nine.netBack2

命令解析:
两个命令二选一,本文章中需要导入到source目录,则选择第二个命令
1.将“Nine.netBack2”整个版本库导入至“D:\同步文件夹\OneDrive\Repositories\JamBlog” JamBlog” 这个版本库的根目录下 ;
2.将“Nine.netBack2”整个版本库导入至“D:\同步文件夹\OneDrive\Repositories\JamBlog” 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跨版本库迁移目录且保留日志

标签:art   使用   实用   一个   文件的   ***   code   repo   csdn   

原文地址:https://www.cnblogs.com/Jamnine/p/13276429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!