独立复制svn仓库

8
我想要克隆一个仓库,但是它应该是彼此独立的副本。这里是否有任何神奇的方法,或者只需要使用svn客户端并克隆即可?
谢谢。

为什么需要这样做?请记住,当您这样做时,原始版本和克隆版本之间没有链接,并且您无法像使用hg或git这样的DVCS一样合并它们之间的更改。 - alroc
3个回答

12

尝试使用svnadmin hotcopy。您可以在Subversion书籍的仓库维护部分中查找,具体在"repository replication"一节中。还有svnsync命令,但仅在您尝试创建镜像时才需要。

引用书中的话: "简单地进行递归目录拷贝存在生成错误备份的风险。在Berkeley DB的情况下,文档描述了一种特定的拷贝数据库文件顺序,将确保有效的备份副本。对于FSFS数据也存在类似的排序。" FSFS和Berkeley DB是普通Subversion安装提供的两个数据库选项,其中FSFS是默认选项。

示例用法(同样来自书籍):

$ svnadmin hotcopy /var/svn/repos /var/svn/repos-backup

4
使用 svnrdump 工具通过 HTTPS 和 svn://(即远程)获取仓库转储(完整的修订历史记录),然后使用 svnadmin load 将其加载到新的干净仓库中。请注意,为了获得完整的仓库转储,您必须拥有对仓库中所有树的完全读取访问权限,否则转储可能不完整。

2

我正在尝试做同样的事情,基本上我所做的是:

svnadmin dump(可选参数-r(修订号)),我用它来转储我们代码的最新修订版本,然后只加载了最新的修订版本,但如果您需要了解谁做了什么的整个历史记录,则命令不带-r。

转储当前存储库:

svnadmin dump /path/to/repository > repo.dmp

创建一个新的(但是空的)仓库:

svnadmin create /path/to/new/repo

然后将转储文件加载到新存储库中:

svnadmin load /path/to/new/repo < repo.dmp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接