如何提取SVN转储?

Bro*_*oke 4 svn svndump

我收到了一个SVN转储文件,其中包含大量页面(所有HTML页面以及所有服务器端代码).我要将它们分开,但不知道如何做到这一点.

我在窗户上,我根本没有SVN.

Gui*_*ume 7

Adam Butler的答案几近完美,但我遇到了一些问题,所以这是我的工作解决方案:

在DOS窗口中(使用ConEmu可以获得更好的效果)

First cd to your svn folder tools
mkdir d:\dumpRepo
svnadmin create d:\dumpRepo
type [PATH TO DUMP].dump | svnadmin load d:\dumpRepo
svn export file:///d:/dumpRepo d:\Exportedfiles
Run Code Online (Sandbox Code Playgroud)

svn export的文件URI仅包含常规/非常重要


Ada*_*ler 5

这里有一个简单的指南 - 它适用于 linux/unix,但在 dos 提示符下工作:http : //www.mhermans.net/get-files-from-svn-dump.html

首先 - 下载命令行 svn http://subversion.apache.org/packages.html#windows 这可能是一个挑战,但最终你会在某个 bin 文件夹中拥有 svn.exe 和 svnadmin.exe。一旦你有了它,它就会一帆风顺:

从 dos 框:

mkdir c:\backup_repo
[PATH TO SVN]\svnadmin.exe init c:\backup_repo
type [PATH TO DUMP].dump | [PATH TO SVN]\svnadmin.exe load
[PATH TO SVN]\svn.exe export "file:///C:\repo" c:\exportdest
Run Code Online (Sandbox Code Playgroud)

HTH

  • 几周前,我在那篇旧博文上每封邮件收到一条评论:“`svn init` 不是一个选项;必须:`svnadmin create backup_repo`”。没有测试过,但也许它会有所帮助。 (3认同)
  • “init”对我也不起作用,“create”对我有用。在 Windows 7 上。 (2认同)

gbj*_*anb 3

假设您有完整转储而不是增量转储,您可以轻松提取文件。它们存储有一小段标头信息(包括文件的大小),后跟文件本身。

如果您有增量转储(其中您有文件的初始版本,然后只有增量)(即每个文件提交时的更改),您会遇到更困难的问题。然而,有一个简单的解决方案:

安装VisualSVN Serverhttp://www.ubersvn.com/并使用它导入转储。然后使用像TortoiseSVN这样的工具来查看历史记录并单独导出每个文件(即,您刚刚创建了转储的 svn 存储库的副本,现在可以像任何 subversion 用户一样访问它)。