本手册旨在描述 Subversion 1.2。如果您使用的是更新版本的 Subversion,我们强烈建议您访问 https://svnbooks.subversion.org.cn/ 并查阅适合您 Subversion 版本的书籍。
svnadmin dump — 将文件系统的内容转储到标准输出。
将文件系统的内容以“dumpfile” 可移植格式转储到标准输出,并向标准错误输出反馈信息。转储修订版本 LOWER
rev 到 UPPER
rev。如果没有给出修订版本,则转储所有修订版本树。如果只给出 LOWER
,则转储该修订版本树。有关实际用途,请参阅 “迁移仓库”部分。
默认情况下,Subversion dumpfile 流包含单个修订版本(请求的修订版本范围内的第一个修订版本),其中仓库中该修订版本中的每个文件和目录都以一次添加整个树的方式呈现,然后是其他修订版本(请求的范围内的剩余修订版本),这些修订版本只包含在这些修订版本中修改的文件和目录。对于修改过的文件,将以其内容的完整文本表示形式以及所有属性的形式在 dumpfile 中呈现;对于目录,将呈现所有属性。
有两对有用的选项可以修改 dumpfile 生成器的行为。第一个是 --incremental
选项,它只是让 dumpfile 流中的第一个修订版本只包含在该修订版本中修改的文件和目录,而不是作为新的树的添加,并且与 dumpfile 中的每个其他修订版本呈现的方式完全相同。这对于生成要加载到另一个仓库的 dumpfile 很有用,而另一个仓库已经拥有原始仓库中存在的文件和目录。
第二个有用的选项是 --deltas
。此开关会导致 svnadmin dump 而不是输出文件内容和属性列表的完整文本表示,而是输出这些项相对于其先前版本的增量。这减少了(在某些情况下,大幅减少了)svnadmin dump 创建的 dumpfile 的大小。但是,使用此选项有一些缺点 - 增量化 dumpfile 在创建方面更耗费 CPU,不能由 svndumpfilter 操作,并且在使用 gzip 和 bzip2 等第三方工具压缩时,往往不如非增量化副本压缩效果好。
转储整个仓库
$ svnadmin dump /usr/local/svn/repos SVN-fs-dump-format-version: 1 Revision-number: 0 * Dumped revision 0. Prop-content-length: 56 Content-length: 56 …
增量地转储仓库中的单个事务
$ svnadmin dump /usr/local/svn/repos -r 21 --incremental * Dumped revision 21. SVN-fs-dump-format-version: 1 Revision-number: 21 Prop-content-length: 101 Content-length: 101 …