我需要获得一个大型(~8gb)svn存储库的备份转储。我当前的方法是将svnadmin dump
用于文件,然后使用7-Zip压缩和拆分文件。
> svnadmin dump c:\path\to\myrepo > c:\svndump.svn
> 7z svndump.svn svndump.7z // or whatever the correct syntax is
我想知道是否有办法在这里跳过中间人,并通过管道或其他东西一次性压缩svn转储数据?这可能吗?语法是什么?
答案 0 :(得分:19)
svnadmin dump
dumps to standard out by default和7z
command line can read from standard input using the -si
switch。
svnadmin dump c:\path\to\myrepo | 7z a -si svndump.7z
答案 1 :(得分:0)
因为你的样本正是我所寻找的,所以这就是我作为" dump"的完整解决方案所做的。我所有的存储库。 该解决方案将所有svn存储库转储到7-zip文件而不使用未压缩的中间文件。
将该批处理文件放在"存储库根目录"中,例如米:\库\转储all.bat
pushd %~dp0
SET SEVENZIP="c:\Program Files\7-Zip\7z.exe" a -mx1 -si
FOR /f "tokens=*" %%i in ('DIR /a:d /b') DO svnadmin dump %%i | %SEVENZIP% ..\_svndump\%%i.dump.7z
并且,如果你需要以低优先级运行它,那么启动那个批处理,这两个进程(7z + svnadmin)将占用大量的cpu
start /low m:\repositories\dump-all.bat
注意:" pushd%~dp0"设置"当前目录"到批处理文件的位置,而不是在" c:\ windows \ system32"如果你从资源管理器启动它"以管理员身份运行"。如果工作文件夹位于另一个驱动器上,它也可以工作 无需键入" m:"和" cd \ repositories"。如果你从" c:"驱动。