2009-04-30 16 views
11

मुझे एक बड़े (~ 8 जीबी) एसवीएन रिपोजिटरी का बैकअप डंप प्राप्त करने की आवश्यकता है। मेरी वर्तमान विधि में फ़ाइल में svnadmin dump का उपयोग करना और फिर फ़ाइल को संपीड़ित करने और विभाजित करने के लिए 7-ज़िप का उपयोग करना शामिल है।विंडोज कमांड प्रॉम्प्ट पर डेटा पिपिंग

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

मैं अगर वहाँ मध्यम आदमी यहाँ छोड़ के लिए एक रास्ता हो सकता है, और पाइप या कुछ का उपयोग करके SVN डंप डेटा एक ही बार में संकुचित करने की मिल सोच रहा था? क्या यह संभव है? वाक्यविन्यास क्या होगा?

+3

करीबी वोट की प्रतिक्रिया: ठीक है, हाँ, सीधे प्रोग्रामिंग से संबंधित नहीं है, लेकिन स्पर्शकीय रूप से ऐसा है। इसके अलावा इसमें एक निश्चित और आधिकारिक उत्तर है, इसलिए मुझे लगता है कि यह स्टैक ओवरफ़्लो पर फिट बैठता है। – nickf

+3

यह विषय पर है - यह प्रोग्रामिंग से संबंधित उपकरणों के प्रभावी उपयोग से संबंधित है – Alnitak

उत्तर

0

क्योंकि अपने नमूना वास्तव में क्या मैं, के लिए देख रहा था यह है कि क्या मैं एक पूर्ण समाधान के रूप में किया था "डंप" करने के लिए अपने सभी खजाने है था। वह समाधान असम्पीडित इंटरमीडिएट के बिना सभी svn रिपॉजिटरीज़ को 7-ज़िप फ़ाइल पर डंप करता है।

उस बैच फ़ाइल को अपने "भंडार रूट" में रखें, उदा। मीटर: \ खजाने \ डंप-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) में इसे चलाने के लिए की जरूरत है सीपीयू का एक बहुत ले जाएगा

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

नोट्स: "pushd% ~ dp0" बैच फ़ाइल कहां से "वर्तमान निर्देशिका" सेट करें, इसे "c: \ windows \ system32" में शुरू करने के बजाय, यदि आप इसे "व्यवस्थापक के रूप में चलाएं" के साथ एक्सप्लोरर से प्रारंभ करते हैं, । यह काम करता है अगर काम करने वाला फ़ोल्डर किसी अन्य ड्राइव पर है।
"m:" और "cd \ repositories" टाइप करने की कोई आवश्यकता नहीं है। यदि आप इसे "सी:" ड्राइव से शुरू करते हैं।