SVN跨版本库迁移目录并保留提交日志
2017-07-27 12:02
567 查看
http://blog.csdn.net/tianshijianbing1989/article/details/41980675
这几天有这样一个问题,现在有一份代码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下边:
![](http://witcher42.me/wp-content/uploads/2012/06/svn_multi_repos.png)
于是,要开始喽
注意,svn命令是在svn client端执行的,svnadmin svnserver svndumpfilter都是在svn server端执行的。
这个时候会有提示说
这个时候,需要给reposB新建一个dirB文件夹
再次执行命令
就会得到
然后,code文件夹现在在reposB/dirAA/dirB/code/这个路径,可以使用svn mv在客户端移动目录
这样就把reposA/dirB/code/转移到了reposB/dirAA/code/,并且保留了相应的提交日志,目标达成。
SVN跨版本库迁移目录并保留提交日志
这几天有这样一个问题,现在有一份代码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下边:
![](http://witcher42.me/wp-content/uploads/2012/06/svn_multi_repos.png)
于是,要开始喽
注意,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' |
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 | ... * adding path : dirAA/dirB/code ... done. * adding path : dirAA/dirB/code/fileA ... done. ... |
1 | svn mv /path/to/reposB/dirAA/dirB/code/ /path/to/reposB/dirAA/ |
相关文章推荐
- SVN跨版本库迁移目录并保留提交日志
- SVN跨版本库迁移目录并保留提交日志
- VisualSVN跨版本库迁移目录(保留日志)
- windows下svn提交版本时强制写日志
- svn查看日志+还原版本+忽略提交
- project从VSS迁移到SVN,保留日志
- windows下svn提交版本时强制写日志 .
- SVN修改已提交版本的日志
- svn版本库目录结构
- 关于初建SVN库,配置完成后在SVN客户端提交svn目录时的报错
- 使用eclipse对比SVN提交两个版本代码差异
- svn修改提交的版本属性
- 转载:SVN实现在更新本地版本库时忽略指定目录
- SVN:通过命令行只提交目录,并忽略其中的文件
- svn版本库目录结构
- SVN 入门: 将已有文件目录加入svn版本控制
- SVN查看提交日志的命令
- 迁移本地数据文件、控制文件、日志文件到新的存储(挂载点目录与本地目录相同)
- SVN版本库的迁移
- SVN版本库无损迁移与自动备份(二)