当前位置: 首页 > news >正文

SVN提取子目录到新库(附带提交历史)方法

plan-A:

以下命令需要直接在服务器上操作:

1、转存test_repo仓库

svnadmin dump test_repo > test_repo.dump

2、筛选指定子目录

svndumpfilter --drop-all-empty-revs include test_dir <test_repo.dump> test_repo_test_dir.dump

--drop-all-empty-revs 从最终的转储文件中删除所有的空版本号(与本目录无关的版号)

3、加载到新库

  • 新建仓库 new_repo

  • svnadmin load  new_repo <  test_repo_test_dir.dump

  • 新库最终目录结构:

new_repo

        test_dir

                a

                b

                ...

plan-B:

无需在服务器上操作,但需要账号认证和对应库权限:

1、转存指定目录

svnrdump dump http://192.168.20.254/newsvn/test_repo/test_dir > test_repo_test_dir.dump

也可使用file协议:

svnrdump dump file:///svn/svn-repo/test_repo/test_dir > test_repo_test_dir.dump

2、筛选指定子目录

svndumpfilter --drop-all-empty-revs include test_dir <test_repo_test_dir.dump> test_repo_test_dir_clean.dump

3、加载到新库

  • 新建仓库 new_repo

  • svnrdump load  http://192.168.20.254/newsvn/new_repo <  test_repo_test_dir_clean.dump。也可以使用svnadmin load命令

  • 新库最终目录结构:

new_repo

        test_dir

                a

                b

                ...

实际操作效果:

操作方式

账号认证

操作范围

转存文件大小

svnadmin dump

登录服务器操作

不需要

整个库

svnrdump dump

本地操作

需要

可针对子目录

相对较小

以ops_develop仓库为例(副本大小1.6G):

svnadmin 转存文件大小为3.2G

svnrdump转存文件大小为3.0G。针对ops_develop/svnMg目录转存文件大小为21M

svnadmin dump test-log -r 0:9 > 0-9.dump

svnadmin dump test-log -r 10:20 --incremental > 10-20.dump

改新库uuid与老库一致,执行

svn relocate  https://xxx/newsvn/test_repo/svnMg http://yyy/newsvn/new_repo/svnMg

可以继续使用老的工作副本工作

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • springboot整合logback进行日志管理(上篇)
  • k8s - Volume 简介和HostPath的使用
  • 64.最小路径和
  • 【ragflow】安装2:源码安装依赖
  • Linux—— 配置ssl安全证书
  • 学习Kerberos
  • Android Framework(三)Activity启动流程
  • Python优化算法24——基于觅食生境选择的粒子群算法(FHSPSO)
  • 面向对象软件编程——OOP入门实践
  • MySQL进阶篇1
  • 深度学习100问50:seq2seq的原理是什么
  • 分布式主键
  • kubeadm部署 Kubernetes(k8s) 高可用集群【V1.28 】
  • 解锁 Redis:探索连接策略、数据编码与性能秘诀
  • 华为AC旁挂二层组网配置详解:从DHCP部署到无线业务配置,完成网络搭建
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • Angular6错误 Service: No provider for Renderer2
  • go append函数以及写入
  • IDEA常用插件整理
  • JS实现简单的MVC模式开发小游戏
  • node学习系列之简单文件上传
  • Objective-C 中关联引用的概念
  • php面试题 汇集2
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 分布式任务队列Celery
  • 使用 Docker 部署 Spring Boot项目
  • 算法-图和图算法
  • 一文看透浏览器架构
  • 正则表达式小结
  • Mac 上flink的安装与启动
  • scrapy中间件源码分析及常用中间件大全
  • ​​​​​​​​​​​​​​汽车网络信息安全分析方法论
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • (3)(3.2) MAVLink2数据包签名(安全)
  • (C#)一个最简单的链表类
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (ibm)Java 语言的 XPath API
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (十)T检验-第一部分
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (四)搭建容器云管理平台笔记—安装ETCD(不使用证书)
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • .htaccess配置常用技巧
  • .JPG图片,各种压缩率下的文件尺寸
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core MVC 通过 Filters 过滤器拦截请求及响应内容
  • .NET Core引入性能分析引导优化
  • .net 程序发生了一个不可捕获的异常
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NetCore 如何动态路由
  • .NET开发人员必知的八个网站