SVN跨版本库迁移目录并保留提交日志

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/,并且保留了相应的提交日志,目标达成。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
SVN(Subversion)是一个版本控制系统,它可以帮助团队协作开发和管理项目的代码。在使用SVN之前,你需要先创建一个版本(Repository),然后才能在该版本中进行代码的版本控制。 要创建一个SVN版本,你可以按照以下步骤进行操作: 1. 安装SVN服务器:首先,你需要在你的服务器上安装SVN服务器软件。常用的SVN服务器软件有Apache Subversion(简称Apache SVN)和VisualSVN Server等。你可以根据自己的需求选择合适的SVN服务器软件进行安装。 2. 配置SVN服务器:安装完成后,你需要进行SVN服务器的配置。具体配置方式会因不同的SVN服务器软件而有所不同,但通常需要指定版本路径、访问权限等信息。 3. 创建版本:在SVN服务器配置完成后,你可以使用SVN客户端工具来创建版本SVN客户端工具有很多种,比如TortoiseSVN、SmartSVN等。这里以TortoiseSVN为例进行介绍。 - 下载并安装TortoiseSVN:首先,你需要下载并安装TortoiseSVN客户端工具。你可以在TortoiseSVN官方网站上下载最新版本的安装包,并按照安装向导进行安装。 - 创建版本:安装完成后,在你想要创建版本目录上,右键点击鼠标,选择"TortoiseSVN",然后选择"Create Repository here"。接着,选择版本的类型(如标准文件系统、Berkeley DB等),并指定版本的名称和路径。 4. 配置访问权限:创建版本后,你可能需要配置访问权限,以控制谁可以对版本进行读写操作。具体的权限配置方式也会因SVN服务器软件而有所不同,你可以参考相应的文档进行配置。 至此,你已经成功创建了一个SVN版本。接下来,你可以使用SVN客户端工具来进行代码的版本控制、提交修改等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值