2009-04-30 6 views
11

큰 (~ 8GB) svn 저장소의 백업 덤프를 가져와야합니다. 현재의 방법은 파일에 svnadmin dump을 사용한 다음 7-Zip을 사용하여 파일을 압축하고 분할하는 것입니다. 여기 저기 중간 남자를 건너 뛸 수있는 방법, 그리고 파이프 또는 무언가를 사용하여 SVN 덤프 데이터를 한 번에 압축 할 얻을 것입니다 경우Windows 명령 프롬프트에서 데이터 파이프

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

궁금 해서요? 이것이 가능한가? 문법은 무엇입니까?

+3

가까운 투표에 대한 답변 : ok, yes, 직접 관련 프로그래밍이 아니라 접선 적으로 그렇습니다. 게다가 그것은 확실하고 권위있는 답변을 가지고 있으므로 Stack Overflow에 적합하다고 생각합니다. – nickf

+3

주제에 관한 것입니다 - 프로그래밍 관련 도구를 효과적으로 사용하는 것과 관련이 있습니다 – Alnitak

답변

0

샘플이 정확히 내가 찾고 있었던 것이기 때문에 이것은 모든 저장소를 "덤프"하는 완전한 솔루션으로 수행 한 것입니다. 이 솔루션은 모든 svn 리포지토리를 압축되지 않은 중간없이 7-zip 파일로 덤프합니다.

배치 파일을 "저장소 루트"에 넣습니다. m : \ 저장소 \ 덤프 - 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 

Notes : "pushd % ~ dp0"은 "관리자로 실행"이 포함 된 탐색기에서 시작하는 경우 "c : \ windows \ system32"에서 시작하는 대신 "현재 디렉토리"를 배치 파일의 위치로 설정합니다. . 작업 폴더가 다른 드라이브에있는 경우에도 작동합니다.
"m :"및 "cd \ repositories"를 입력 할 필요가 없습니다. "c :"드라이브에서 시작하면됩니다.

관련 문제