zoukankan      html  css  js  c++  java
  • 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下边:

    于是,要开始喽
    注意,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'

    这个时候,需要给reposB新建一个dirB文件夹

    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
    4
    ...
        * adding path : dirAA/dirB/code ... done.
        * adding path : dirAA/dirB/code/fileA ... done.
    ...

    然后,code文件夹现在在reposB/dirAA/dirB/code/这个路径,可以使用svn mv在客户端移动目录

    1
    svn mv /path/to/reposB/dirAA/dirB/code/ /path/to/reposB/dirAA/

    这样就把reposA/dirB/code/转移到了reposB/dirAA/code/,并且保留了相应的提交日志,目标达成。

  • 相关阅读:
    自动化测试-19-测试报告分离
    自动化测试-18-测试用例目录整合
    自动化测试-17-测试框架改进-浏览器Driver分离
    自动化测试-16-测试框架改进-数据分离openpyxl读取excel数据
    自动化测试-15-测试框架改进-yml文件介绍
    自动化测试-14-测试框架改进 --ini文件读取
    自动化测试-13- 自动化测试框架开发
    自动化测试-12-PO-PageObject原理
    自动化测试-11-pycharm中windows找不到chrome解决办法
    自动化测试-10-Python 文件操作中的读写模式:open(path, '-模式-',encoding='UTF-8')
  • 原文地址:https://www.cnblogs.com/zikai/p/5142590.html
Copyright © 2011-2022 走看看