2012-03-20 16 views
6

रखता है हम कई छोटे repos में एक बड़ा svn भंडार (100k + revs) विभाजित कर रहे हैं। मैं बड़े डंप को फ़िल्टर करने के लिए डंप और svndumptool/sed को विभाजित करने के लिए svndumpfilter (v1.7.2) का उपयोग कर रहा हूं।svndumpfilter --drop-blank-revs पैडिंग संशोधन

सब कुछ ठीक काम करता है, सिवाय इसके कि मेरे फ़िल्टर किए गए डंप में अभी भी कुछ "पैडिंग संशोधन" हैं, भले ही मैंने "ड्रॉप-रिक्त-revs" विकल्प का उपयोग किया हो।

यह हमारे लिए बहुत ही समस्याग्रस्त नहीं है जब हमारे पास बेकार "पैडिंग संशोधन" से 10% से कम है लेकिन कभी-कभी, नए रेपो में केवल कुछ सैकड़ों वास्तविक संशोधन होते हैं जिन्हें 30k + "पैडिंग संशोधन" में दफनाया जाता है।

यहाँ आदेश मैं का उपयोग करें और संशोधन कि शामिल किए गए हैं

svndumpfilter --drop-empty-revs --renumber-revs include /MyProj <MassiveOldRepo.dump> NewAllCleanRepo.dump 

------------------------------------------------------------------------ 
r3453 | (no author) | 2005-09-29 17:27:54 +0200 (jeu., 29 sept. 2005) | 1 line 

This is an empty revision for padding. 
------------------------------------------------------------------------ 
r3454 | (no author) | 2005-09-29 17:28:27 +0200 (jeu., 29 sept. 2005) | 1 line 

This is an empty revision for padding. 
------------------------------------------------------------------------  

मैं अगर वहाँ एक रास्ता के रूप में मैं डंप (फ़िल्टर कर रहा हूँ उन्हें मैन्युअल रूप से हटाने के बिना इन संशोधन शामिल नहीं है जानना चाहते हैं फ़िल्टर किए गए डंप से)।

संपादित करें: मैं जोड़ना होगा कि svndumpfilter के अपने प्रयोग कुछ खाली संशोधन, पहले 'असली' संशोधन से पहले लोगों को और पिछले "असली" संशोधन के बाद लोगों को चला जाता है।

उत्तर

3

परीक्षणों के घंटों के बाद, svndumpfilter स्रोत कोड (जिसे बहुत अच्छी तरह से टिप्पणी की गई है, अच्छी तरह से किया गया है!) पढ़ना, मुझे एहसास है कि ये खाली संशोधन मेरे फ़िल्टरिंग से नहीं आते हैं।

वे पहले से ही से 2005

निष्कर्ष अपने मूल डंप और तारीख में झूठ बोल रहे हैं: पहली बार अपने डेटा की जाँच करें !!

2

मैं आपकी स्थिति के बारे में निश्चित नहीं हो सकता, लेकिन मेरे मामले में, यह फ़िल्टरिंग था जिसके कारण हजारों पैडिंग संदेशों को लॉग में दिखाना पड़ा।

--drop-empty-revs --renumber-revs 

दूसरा स्विच यह बनाता है ताकि अगर आपके फिल्टर, उदाहरण के लिए, रेव 1000-1200, शामिल है, लेकिन उसके बाद 1201-5000 बाहर रखा गया है, अगले राजस्व यह भी शामिल होगा: मैं इन दो स्विच को शामिल करके इसका समाधान नहीं होता संख्या 1201, 5001 नहीं जो कुछ हजार खाली पैडिंग revs के निर्माण का कारण बन जाएगा।

6

मुझे वही समस्या थी जिसमें खाली संशोधन पहले से ही भंडार में शामिल किए जा रहे थे। चूंकि सबवर्सन 1.7 अभी भी एक अनियंत्रित स्विच है जो सभी रिक्त संशोधन को फ़िल्टर करने की अनुमति देता है।

svndumpfilter --drop-all-empty-revs include/<oldrepos.dump> newrepos.dump 

अधिक जानकारी grokbase में पाया जा सकता।