最近一直在弄SVN上面的一些东西。其中涉及到这样一个需求。
在Repositories下都是项目。如图:
现在我想要将这些项目都归档到各自的部门中。如下 :
可是考虑到每个部门不会只包含项目,还会有别的,例如员工资料,这样需求就变成下面的了:
那么怎样从第一个到第三个呢?
这里需要用到两个命令:svnadmin dump 和 svnadmin load。
两个命令的详细用法我就不多说了,baidu一下很多的。或者在cmd中自己查一下。我只说下怎样用这两个命令实现!!
首先,你需要对SVN所建的库有一个认识,这样你才会明白为什么需要这么麻烦的去做这件事。建立的库在电脑上是以如下结构存储的:
所以往部门里面移动项目是不可以在服务端进行复制粘贴的。
做法:
1.将项目1的库用svnadmin dump导出,svnadmin dump E:\Repositories\项目1 > F:\项目1.svn_dump
说明:我的visual SVN SERVER 将RESPOSITORIES设置的E盘,>后面的是备份文件的绝对路径
(建议使用绝对路径,若不写路径,会到哪自己在C盘搜索一下!!!)
2.将导出的文件用svnadmin load进行导入:
svnadmin load E:\Repositories\部门1 --parent-dir 项目\项目1 < F:\项目1.svn_dump
说明:parent前面是两个‘-’,访问部门下的项目文件夹是不可以直接”部门\项目“的,从库结构看,部门
下面只有那几个文件和文件夹,只能用上面提供的命令来进行访问子文件夹。<后面是写的备份文件的
绝对路径,如果不写,默认会去哪找,参照第一步。
这样就可以实现上面提出的需求了。(如果你不是用的visual SVN Server,不知道怎样写路径,可以自己猜一下,猜不到的话,咱们一起讨论。