SVN 仓库目录迁移,仓库 “降级” 成子目录实战

背景:

已存在 svn /aa/bb/cc 仓库,但公司研发现在需求是把 /aa/bb 变为仓库,cc 则为 /aa/bb 仓库内的一个目录,且需要保留内容和 log。

操作步骤

1. 导出原仓库数据

bash 复制代码
# 导出 cc 仓库全部历史
svnadmin dump /svndir/aa/bb/cc > cc_repository.dump
# 移动原仓库
mv /svndir/aa/bb/cc /tmp/cc

2. 创建仓库并导入数据

bash 复制代码
# 创建新仓库 bb
svnadmin create /svndir/aa/bb

# 关键:手动创建父目录,否则导入会报错 E160013
svn mkdir file:///svndir/aa/bb -m "为导入 cc 数据预建目录"

# 将数据导入 bb 仓库的 cc 目录下(--parent-dir)
# 否则会导入到 / 目录
svnadmin load /svndir/aa/bb --parent-dir cc < cc_repository.dump

3. 导入权限

bash 复制代码
cp -r /tmp/cc/conf/* /svndir/aa/bb/conf/

检查对应目录权限,然后下载检查 log 等即可。

其他

  1. 同时创建多目录:

    svn mkdir file:///svndir/aa/bb/cc1 file:///svndir/aa/bb/cc2 -m "预建目录"

  2. 实现父目录可读,子目录禁用:

    vim authz

    如下:

    [/xx]
    user = rw # 允许访问父目录
    [/xx/aa]
    user = # 留空表示禁止访问子目录 aa(会覆盖父目录权限)

  3. 下载仓库后 log 查看异常

能成功下载仓库,但是查看 log 要不停输入密码,解决方法(清缓存):
右键 -> TortoiseSVN -> Settings -> Saved Data -> Authentication data -> 点击 Clear

相关推荐
0+1112 小时前
Linux --从 poll 到 epoll多路转接
linux·服务器·1024程序员节
青瓦梦滋2 小时前
WebSocket协议
linux·服务器·网络·c++·websocket·网络协议·http
桌面运维家2 小时前
旧电脑跑不动课程软件,VDI云桌面怎样接着用?
运维·服务器·虚拟化·pve·vdi·云桌面
zhang133830890752 小时前
传统机械三杯式风速传感器易磨损冻堵?CG-88金属超声波风速风向传感器给出免运维方案
运维·服务器·网络·人工智能·自动化
知已难寻3 小时前
第 2 篇 · 云的地基:服务器、存储、网络三大基础设施
运维·服务器·网络·云原生·云计算·负载均衡·1024程序员节
2601_949847755 小时前
bcrypt.js 跨端三方库仓颉适配全流程
linux·运维·ubuntu
m0_639906945 小时前
Linux 操作系统入门:目录结构、服务排查常用命令、Shell 脚本基础
linux·运维·后端
今天重构了吗6 小时前
Linux 上 rm -rf 删错了能找回吗
运维·服务器
KaiwuDB6 小时前
KaiwuDB 分布式集群扩缩容,从原理到完整操作踩坑总结
运维·数据库·分布式
codezzzsleep6 小时前
学术汇报 PPT 自动化生成实战指南
运维·自动化·powerpoint