如何将SVN存储库迁移到另一个SVN存储库?

Jak*_*old 58 svn svndumpfilter svnadmin svndump

有没有一种简单的方法可以将目录从一个存储库复制到另一个存储库并复制所有历史记录?

Ada*_*dam 79

最简单的方法是使用:

svnadmin dump path/to/repos > repos.out
Run Code Online (Sandbox Code Playgroud)

这将为文件中的存储库(带历史记录)创建可移植格式repos.out.然后你可以使用

svnadmin load path/to/newrepos < repos.out
Run Code Online (Sandbox Code Playgroud)

将"转储"存储库加载到新的或现有的存储库.

第5章存储库维护 - >迁移存储库数据其他地方有关于svnadmin dump从1.7版开始使用的注意事项:

Subversion存储库转储格式仅描述版本化存储库更改.它不会携带有关未提交的事务,文件系统路径上的用户锁,存储库或服务器配置自定义(包括钩子脚本)等的任何信息.

  • 小心,我刚刚学会了svnadmin dump不包含钩子/或conf /的困难方法 (23认同)
  • 万一有人犯了我今天犯的错误,你需要真的在svn机器上做这件事.您无法签出仓库,并从远程工作副本转储.http://stackoverflow.com/questions/8866035/unable-to-do-an-svn-dump-error-e720002-and-format-errors这是远程位置的解决方案 (6认同)
  • svnrdump dump和svnrdump load会让你通过网络转储和存储一个存储库. (4认同)
  • 以某种方式安全合并的方法是首先通过乌龟结帐并添加+提交新文件夹.然后一个svnadmin加载--parent-dir newRootFolder <dump.out对我有用.另请参见[将多个存储库合并为一个](http://stackoverflow.com/questions/267256/combining-multiple-svn-repositories-into-one) (2认同)

Ste*_*epp 35

正如Subversion书中所建议的那样:

svnadmin dump path/to/repos_src \
    | svndumpfilter include path/inside/svn/to/directory \
    | svnadmin load path/to/repos_dst
Run Code Online (Sandbox Code Playgroud)

举个例子:

svnadmin dump /var/lib/svn/old_repo \
    | svndumpfilter include trunk/my_project/common_dir \
    | svnadmin load /var/lib/svn/new_repo
Run Code Online (Sandbox Code Playgroud)


cra*_*str 24

如果您不想要历史记录,则可以使用svn export不带.svn文件夹的干净文件夹,然后svn import进入其他存储库.

有了历史,你需要使用svnadmin dump.然后,您将svndumpfilter在使用前仅过滤要使用的部件或路径svnadmin load.

主题阅读:


Tom*_*rle 9

使用svnsync- Subversion存储库镜像命令:

svnsync是Subversion远程存储库镜像工具.简而言之,它允许您将一个存储库的修订重放到另一个存储库中.

svnsync命令的Subversion文档具有以下警告(从版本1.7开始),这意味着一旦使用其他一些SVN命令修改镜像存储库,则svnsync不应再次使用该特定镜像:

svnsync对镜像存储库中所做的更改非常敏感,这些更改不是作为镜像操作的一部分进行的.为了防止这种情况发生,最好是该svnsync进程是唯一允许修改镜像存储库的进程.


Ric*_*ers 5

在Subversion版本1.7中,有一个新命令,svnrdump可用于访问远程存储库并生成与svnadmin dump命令生成的转储格式相同的转储格式.这允许您使用svnrdumpwith svnadmin load来传输Subversion存储库.

请参阅svnrdump-Remote Subversion存储库数据迁移,其中包含新命令的说明.

在红皮书的第5章中,迁移存储库数据Elsewhere部分有一个子部分存储库数据迁移使用svnrdump了以下提及:

[之间的主要区别svnrdumpsvnadmin dump]是该而不需要到仓库的直接访问,svnrdump 使用Subversion客户端确实非常相同的版本库访问(RA)协议远程操作.因此,您可能需要提供身份验证凭据.此外,您的远程交互[原文如此]受Subversion服务器上配置的任何授权限制.

我还假设svnadmin dump有关服务器配置自定义(如挂钩)的限制可能无法转移也适用于svnrdump.


归档时间:

查看次数:

76355 次

最近记录:

7 年,8 月 前