如何迁移没有历史记录的SVN存储库?

时间:2014-07-28 22:15:42

标签: svn

我在这里看到一个大量回答的问题,关于如何使用历史记录迁移存储库,但我有一个项目没有历史记录(新开发,尚未部署,所有内容)在TRUNK)。更重要的是,SVN管理员不会使用更高级别的命令(我怀疑,这些命令会用于迁移历史记录)来移动项目,而且我没有权限。

所以我想做的或多或少是将代码复制出repo_1子目录TRUNK而不进行任何签出,并将代码放入新的空repo_2子目录TRUNK。

实现这一目标的最佳方法是什么?

========================

尽管下面的评论得到了推荐,但下面的第一条评论提出了这种非命令行开发人员最简单的解决方案。这就是我所做的。

  1. 使用Windows资源管理器从当前工作区复制并将粘贴的副本复制到其他工作区 保持文件夹
  2. 删除了新副本中的.svn文件夹
  3. 从项目视图中删除旧项目(复选框:删除已检查的基础文件)[根据定义从当前工作区删除它]
  4. 从hold文件夹导入为"现有项目"进入当前的工作区
  5. 从SVN存储库视图中删除旧的SVN存储库
  6. 将新的SVN存储库添加到SVN存储库视图
  7. 将新项目签入新的SVN信息库

2 个答案:

答案 0 :(得分:4)

三种方法:

使用svn.exe客户端:

  1. svn export <url-to-old-repo>
  2. svn import <url-to-new-repo>
  3. 在服务器端使用svnadmin dumpsvnadmin load(需要对文件系统上的存储库具有完全读取权限):

    1. svnadmin dump path-to-original-repository -r HEAD > MyDump.svndump
    2. svnadmin create NEWREPOSITORYNAME
    3. svnadmin load NEWREPOSITORYNAME < MyDump.svndump
    4. 您可能希望使用--parent-dir DIR参数和svnadmin load命令将转储加载到除新存储库的/ root之外的其他路径。

      使用svnrdump工具(Subversion 1.7+中提供)。该工具&#34;模仿&#34; svnadmin dumpsvnadmin load功能,但远程操作。您不需要对原始目标存储库和目标存储库具有读/写文件系统访问权限,因为工具可以像Subversion客户端一样远程操作,例如,通过HTTPS协议。因此,您需要具有对原始存储库的读取访问权限以及对目标存储库的读取/写入权。

答案 1 :(得分:0)

  • 来自一个存储库的结帐代码
  • 删除svn元数据find . -name '.svn' | xargs rm -rf
  • 在新存储库中导入源