SVN跨版本库迁移目录并保留提交日志

时间:2022-02-03 03:33:03

现在有一份代码code在版本库reposA/dirB/下,现在想把它移动到reposB/dirAA/下,本来打算交给SA做,没想到SA似乎 也不太懂的样子。于是,自己在VPS搭建了一个svnserver,然后在网上查了一下资料,确实没有明确的攻略,不过,综合一下,却也解决了问题。

需要达到的目的是:

1. 将代码移动到新的版本库

2. 将原始的提交记录保留

版本库的结构如下,有reposA和reposB这两个版本库,然后红色的reposA/dirB/code就是需要移动的代码目录。本来打算用 svn move来做的,后来发现因为是不同的版本库,所以这个想法被淘汰了。于是就要在server上想办法了,svnadmin有两个参数dump和load 可以将版本库提取出来/加载进去,还有命令svndumpfilter可以过滤某些不想要/只想要的目录,这些就足以达到目的了。

版本库的结构如下,要将code移动到reposB/dirAA下边:

SVN跨版本库迁移目录并保留提交日志

于是,要开始喽
注意,svn命令是在svn client端执行的,svnadmin svnserver svndumpfilter都是在svn server端执行的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#进入svn版本库目录
cd /opt/svndata
 
ls
#reposA reposB
 
#将reposA导出到一个文件中
svnadmin dump reposA/ > f1
 
#将reposA中的code过滤出来,svndumpfilter include表示只保留制定的目录和文件
svndumpfilter include dirB/code < f1 > f2
 
#将dumpfile2导入相应的目录,也就是reposB/dirAA/,用parent-dir来指定
svnadmin load reposB --parent-dir dirAA < f2

这个时候会有提示说

1
svnadmin: File not found: transaction '1-1', path 'dirAA/dirB/code'

这个时候,需要给reposB新建一个dirB文件夹

1
2
3
mkdir /path/to/reposB/dirAA/dirB
svn add /path/to/reposB/dirAA/dirB
svn ci -m "新增临时文件夹" /path/to/reposB/dirAA/dirB

再次执行命令

1
svnadmin load reposB --parent-dir dirAA < f2

就会得到

1
2
3
4
...
* adding path : dirAA/dirB/code ... done.
* adding path : dirAA/dirB/code/fileA ... done.
...

然后,code文件夹现在在reposB/dirAA/dirB/code/这个路径,可以使用svn mv在客户端移动目录

1
svn mv /path/to/reposB/dirAA/dirB/code/ /path/to/reposB/dirAA/

这样就把reposA/dirB/code/转移到了reposB/dirAA/code/,并且保留了相应的提交日志,目标达成。

SVN跨版本库迁移目录并保留提交日志的更多相关文章

  1. SVN同步版本库与网站目录

    如何创建SVN版本库及同步文件到WEB目录 来源:空谷 一 安装与配置SVN 1.安装subversion centos: yum install subversion ubuntu: apt-get ...

  2. linux下使用svn创建版本库和权限管理

    linux上的svn服务端如何和本地的电脑客户端结合使用 Linux上安装SVN服务器: 第一步:检查是否已安装 # rpm -qa subversion 第二步: 通过yum命令安装svnserve ...

  3. svn创建版本库和删除版本库

    作者:朱金灿 来源:http://blog.csdn.net/clever101 svn创建版本库的做法:使用cd命令进入版本仓库的根目录,我的是E:\Repository,然后运行命令: svnad ...

  4. SVN服务器迁移,SVN版本库迁移&lpar;网络copy&rpar;

    做法: 准备:系统平台:windows server 2003 版本库:vos 源服务器:10.10.13.48 目标服务器:10.10.13.129源SVN版本库的path: D:\svn\vos要 ...

  5. SVN同步版本库与网站目录2

    定义: SVN版本库  = /home/svn/repos  网站目录     = /var/www/web 1.检出一个项目到网站目录 #svn checkout file:///home/svn/ ...

  6. hg&lpar;Mercurial&rpar;版本库迁移到git版本库

    这几天没事干净搞迁移了,迁移完MVC又迁移版本库,还把工作电脑迁移了一下,开始用Win8.1了.这个迁移主要是因为实在不想在工作电脑上又装git又装hg了,点个右键出来一大堆菜单,况且现在git已经成 ...

  7. SVN&colon;多版本库环境的搭建

    一. 1,启动SVN sudo svnserve -d -r /home/data/svn/ 其中 -d 表示守护进程, -r 表示在后台执行 /home/data/svn/  为svn的安装目录 2 ...

  8. win7系统svn创建版本库

    1. 在svn所在的服务器上, 找到它的目录, 右击创建项目名称文件夹, 然后右击该文件夹创建版本库 2. 创建版本库之后, 会出现几个文件夹, 打开conf文件夹,  修改里面的配置文件 3. 在自 ...

  9. SVN访问版本库精细的权限控制

    SVN精细权限控制本章将详细介绍前一章所涉及的两个配置文件, svnserve.conf 和 authz.conf,通过对配置逐行的描述,来阐明其中的一些细节含义.除此之外的其他配置.安装等内容,不是 ...

随机推荐

  1. oracle根据某个字段去重实例

    if not object_id('Tempdb..#T') is null drop table #T Go Create table #T([ID] int,[Name] nvarchar(1), ...

  2. HTML入门教程 这里可以免费学习啦

    本文目标 30分钟内让你明白HTML是什么,并对它有一些基本的了解.一旦入门后,你可以从网上找到更多更详细的资料来继续学习. 什么是HTML HTML是英文Hyper Text Mark-up Lan ...

  3. poj 1273 最大流

    题目链接:http://poj.org/problem?id=1273 a.EK算法:(Edmond-Karp): 用BFS不断找增广路径,当找不到增广路径时当前流量即为最大流. b.dinic算法: ...

  4. VS2015试验随手记

    1.第一次安装时,未完整安装,没有安装MFC,导致可以创建MFC工程,但是不能编译 解决办法,修改安装,加入MFC 2.学习创建windows runtime component,第一次使用,可以得到 ...

  5. 前端代码组织优化--小demo(进阶你的思路)

    事出必有因 最近在看老项目的代码,一个富客户端的js代码,几千行的代码,全是function(){} var...的垂直布局,真的是要感动的哭了. 一开始都是这样,想实现什么功能,不管三七二十一,fu ...

  6. 如何优雅地实现Python通用多线程&sol;进程并行模块

    当单线程性能不足时,我们通常会使用多线程/多进程去加速运行.而这些代码往往多得令人绝望,需要考虑: 如何创建线程执行的函数? 如何收集结果?若希望结果从子线程返回主线程,则还要使用队列 如何取消执行? ...

  7. 基于centos6&period;5安装部署mongdb3&period;6

    注意:不同的版本的centos,mongdb安装方式不同,请注意版本号!! 基于centos6.5安装部署mongdb3.6 方式有多种,本文介绍使用wget命令来下载获取mongdb,具体命令如下 ...

  8. 记录Ubuntu &amp&semi; Windows下安装PyV8

    https://blog.csdn.net/hanshileiai/article/details/51628173

  9. vue 路由meta作用及在路由中添加props作用

    vue路由meta:有利于我们处理seo的东西,我们在html中加入meta标签,就是有利于处理seo的东西,搜索引擎 在路由中传参是通过/:id传参代码如下: import Login from ' ...

  10. pandas数据分析

    本篇主要介绍如何用pandas来分析一份刚拿到的数据集,即做数据挖掘或清洗的工作. 这里以贷款申请预测的数据来作为例子 一.查看基本信息 拿到数据首先看看大致结构,查看行列数,dataframe数据结 ...