第一次写博客,先贴一个前几天解决的问题吧。
公司成立没多久,新进的服务器,现在要把以前写的代码上传到服务器的 SVN 上。这时就有了两个选择,第一呢是可以直接把代码上传到 svn 上,相当于新的项目;第二是把以前的svn库迁移到服务器上去,这样可以保存以前的提交记录。
选第一种没什么说的,我们选择了第二种。当然就有些麻烦了,于是先在百度经验上看到了篇文章,地址是:http://jingyan.baidu.com/article/e73e26c0a8377424adb6a706.html ,这篇文章主要讲的是怎么把SVN库中的数据整个迁移过去。基本思路是先导出一个 dump 文件,然后再在另一个 svn 上将导出的文件进行导入即可。我在本地搭建了一个 svn 服务器,经测试好使。
然后又碰见一个问题,就是源 svn 的目录结构和服务器上的目录结构不一致。这可就蛋疼了,于是又进行百度。看了一些文章感觉都是泛泛而谈没什么作用,终于黄天不负有心人,让我找到了这篇文章:http://www.cnblogs.com/zikai/p/5142590.html 。也是咱大博客园的文章,基本的思路是:先把源 svn 的记录导出到一个 dump 文件中;然后在服务端使用 svndumpfilter 命令把需要的内容进行过滤;再把生成的 dump 文件导入到目的 svn 中;最后再使用命令进行路径的调整。这样就可以保留本来的提交记录了。但是在实施的过程中,最后一个进行目录调整的命令: “svn mv /path/to/reposB/dirAA/dirB/code/ /path/to/reposB/dirAA/” 不识别。条条大路通罗马,不能在一棵树上吊死不是。不就是移动目录嘛,TortoiseSVN (俗称小乌龟)也是可以的。步骤也很简单,就是连接上目的 svn 之后,直接拖动目录就可以了。
至此,svn库不同目录的迁移终于算是完成了。