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

相关推荐
阿祖zu9 小时前
开源项目-让本地 Codex 临时接管远程 Linux 服务,实现快速运维
linux·gpt·agent
Android系统攻城狮11 小时前
Linux PipeWire深度解析之pw_factory_create_object调用流程与实战(七十二)
linux·音频进阶·pipewire音频进阶
lsh曙光11 小时前
playbook剧本(2)--Ansible变量
linux·运维·网络
lengjingzju11 小时前
编译与调试完全指南—第14章 系统配置与调优
linux
ly768911 小时前
Docker 从入门到实践:镜像、容器、Dockerfile 与 Docker Compose 详解
运维·docker·容器
大鹏的NLP博客12 小时前
通用 Linux 嵌入式板端 C/C++ ABI 与 Glibc 依赖治理规范
linux·c++·交叉编译
用户31693538118312 小时前
ry.bat和ry.sh部署
运维
汪海游龙12 小时前
本地源码还是 Maven 版本?Gradle composite build 双轨依赖的正确接法
android·ci/cd·kotlin
mennekes13 小时前
自动化产线临时配电:明装工业插座 vs 面板式工业插座 vs 模块化插座箱取舍
运维·科技·安全·制造
tedcloud12313 小时前
book-to-skill 怎么部署?把技术书和项目文档变成 AI Agent 可复用知识
linux·运维·服务器·人工智能·开源