这里主要记录一下本地仓库将仓库a的一个子文件夹迁移到仓库b中,同时要把提交日志一并迁移(如果是迁移整个仓库员可以通过备份还原迁移,同时可以迁移日志与代码)
不考虑日志迁移其实是比较简单的,一种是在svn服务器使用命令行迁移,一种是创建好目录,直接目录下拷贝原有的代码仓库直接commit
迁移
-
在仓库 B 中创建一个新的目录,用于存放要迁移的子文件夹。可以使用 SVN 管理工具或命令行工具来创建目录。
-
在仓库 A 中执行导出操作,将要迁移的子文件夹导出到本地。可以使用命令行工具执行以下命令:
-
在仓库 B 中执行导入操作,将导出的子文件夹导入到新创建的目录中。可以使用命令行工具执行以下命令:
这将在仓库 B 中创建一个新的子文件夹,并将导出的子文件夹内容导入其中。
-
如果您希望保留提交日志,可以使用
svnadmin dump
和svnadmin load
命令来导出和导入仓库的历史记录。首先,在仓库 A 上执行导出操作,将仓库的历史记录导出到本地。可以使用命令行工具执行以下命令: -
在仓库 B 上执行导入操作,将导出的历史记录导入到新的子文件夹中。可以使用命令行工具执行以下命令:
/path/to/repo_a是地址
迁移日志目标仓库一般都会产生异常如
svnrdump: E175008: While handling the 'svn:rdump-lock' property on '/svn/Versions/!svn/bln/0': svnrdump:
E175008: Repository has not been enabled to accept revision propchanges;
ask the administrator to create a pre-revprop-change hook
这是由于迁移的目标仓库尚未启用接受修订属性更改,这牵扯到SVN的钩子命令,这里不做详细描述,感兴趣可以查看只展示怎么处理这个问题
1.
2.
3. 修改钩子
加入
#!/bin/sh
exit 0
chmod +x pre-revprop-change然后直接就可以往目标仓库迁移日志了