Piping data on Windows command prompt
Asked Answered
H

2

11

I need to get a backup dump of a large (~8gb) svn repository. My current method involves using svnadmin dump to a file and then using 7-Zip to compress and split the file.

> svnadmin dump c:\path\to\myrepo > c:\svndump.svn
> 7z svndump.svn svndump.7z      // or whatever the correct syntax is

I was wondering if there would be a way to skip the middle-man here, and get the svn dump data to be compressed in one go by using pipes or something? Is this possible? What would the syntax be?

Hydrometallurgy answered 30/4, 2009 at 7:4 Comment(2)
response to the close vote: ok, yes, not directly programming related, but tangentially so. Plus it has a definitive and authoritative answer, so I think it fits on Stack Overflow.Hydrometallurgy
it's on topic - it relates to effective use of programming related toolsGilcrest
F
19

svnadmin dump dumps to standard out by default and the 7z command line can read from standard input using the -si switch.

svnadmin dump c:\path\to\myrepo | 7z a -si svndump.7z
Fighterbomber answered 30/4, 2009 at 7:15 Comment(1)
Bleh, you beat me by 10 seconds or so. :)Northampton
I
0

Because your sample was exactly what I was looking for, this is what I did as a complete solution to "dump" all my repositories. That solution dump all svn repositories to 7-zip file without uncompressed intermediate.

Put that batch file in your "repository root", e.g. m:\repositories\dump-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

And, start that batch like this if you need to run it in low priority, both process (7z + svnadmin) will take a lot of cpu

start /low m:\repositories\dump-all.bat

Notes: "pushd %~dp0" set the "current directory" to where the batch file is, instead of starting it in "c:\windows\system32" if you start it from explorer with "run as administrator". It also works if the working folder is on another drive.
No need to type "m:" and "cd \repositories". if you start it from "c:" drive.

Impenetrability answered 11/2, 2016 at 17:3 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.