2009-09-28 17 views
8

क्या svn भंडार में निर्देशिका का नाम बदलना संभव है।क्या svndumpfilter द्वारा भंडार में dir नाम बदलना संभव है?

नया संशोधन नहीं बनाया गया जिसमें इस निर्देशिका का नाम बदल दिया जाएगा।

मैं पहले संशोधन से शुरू होने वाली इस निर्देशिका का नाम बदलना चाहता हूं।

जहां तक ​​मुझे लगता है कि svndumpfilter उपयोगिता का उपयोग इस के लिए किया जा सकता है।

क्या यह सही है?

क्या कोई मुझे छोटा उदाहरण दे सकता है कि यह कैसे करें?

उत्तर

7

आप svnadmin अपने भंडार, प्रक्रिया डंप फ़ाइल और svnadmin लोड एक खाली रेपो में संसाधित फ़ाइल डंप करना चाहिए। नहीं svndumpfilter आवश्यक है।

svnadmin dump /repos/path > old.dump 

डंप फ़ाइल Sed या किसी अन्य उपकरण (सुनिश्चित करें कि बाइनरी डेटा दूषित न हो हो) के साथ कार्रवाई की जा सकती है और निर्देशिका का नाम बदलें। उदाहरण के लिए:

sed -b -e "s#^\(Node.*path\): dir1/dir_old#\1: dir1/dir_new#" old.dump > new.dump 

एक बार जब आप डंप फ़ाइल की प्रक्रिया पूरी की है:

svnadmin create /newrepos/path 
svnadmin load /newrepos/path < new.dump 
+2

एक जटिल डेटा संरचना जैसे एसवीएन डंप की तरह एक साधारण उपकरण के साथ संसाधित न करें। कोई भी आपको गारंटी देता है कि स्ट्रिंग ': dir1' कहीं और नहीं दिखाई देती है। – reto

+2

उस स्थिति में आपको संसाधित फ़ाइल लोड करते समय 'चेकसम मिस्चैच' त्रुटि मिलेगी। डंप फ़ाइल प्रारूप देखें: http://svn.apache.org/repos/asf/subversion/trunk/notes/dump-load-format.txt – fglez

+0

यह शानदार है। यह काम करता हैं। यह एकमात्र आसान तरीका है कि एसवीएन डंप में फ़ोल्डरों के साथ कैसे स्थानांतरित करें! – qub1n

3

मैं निश्चित रूप से नहीं , सलाह देते हैं एसईडी उपयोग करने के लिए है क्योंकि यह फ़ाइल स्वरूप से अनजान है और आप हो सकता है आसानी से एसवीएन डंप फ़ाइल को अनुपयोगी प्रस्तुत करें।

इसके अतिरिक्त, यदि आप केवल एक पथ से थोड़ा अधिक प्रतिस्थापित करना चाहते हैं, तो आपको या तो SHA1 और MD5 चेक-रम्स को अपडेट या निकालना होगा।

एक एसवीएन डंप को संशोधित करना वास्तव में छोटा नहीं है क्योंकि यह पहले प्रतीत होता है।

मुझे कल भी यही समस्या थी, और मैंने इस उद्देश्य के लिए एक छोटा सा कार्यक्रम लिखा था। मैं इसे यहाँ प्रकाशित हर किसी का उपयोग करने के लिए:

https://github.com/nlmarco/svndumptransformer

यह मुफ्त सॉफ्टवेयर है और आप इसे संशोधित करने के लिए आपका स्वागत है, आप चाहते हैं/और अधिक सुविधाओं की आवश्यकता है।

यह प्रोग्राम केवल टेक्स्ट सामग्री को संशोधित करता है (यदि कोई फ़ाइल - उदाहरण के लिए एक छवि - माइम-प्रकार "एप्लिकेशन/ऑक्टेट-स्ट्रीम" के लिए चिह्नित है, तो इसे संशोधित नहीं किया गया है)। और चूंकि यह वास्तव में एसवीएन डंप प्रारूप को पढ़ता और समझता है, यह एसवीएन डंप से संबंधित संरचनात्मक डेटा को संशोधित नहीं करता है - उपरोक्त sed कमांड के विपरीत।

मेरे लिए, इस कार्यक्रम के रूप में वर्तमान में यह एक उत्पाद का नाम बदलने में ठीक काम करता है - सभी पथों के साथ-साथ परियोजना कॉन्फ़िगरेशन फ़ाइलों (=> ग्रेडल) और कुछ दर्जन जावा कक्षाओं का नाम बदलना।

मुझे आशा है कि यह प्रोग्राम अन्य लोगों के लिए भी उपयोगी है।

बीटीडब्ल्यू। मुझे पता है कि यह सवाल बहुत पुराना है, लेकिन मुझे आशा है कि मेरा जवाब उन लोगों की मदद कर सकता है जो अब इस समस्या का सामना कर रहे हैं।

संबंधित मुद्दे