2011-11-30 11 views
18

मैं git svn clone का उपयोग कर एक गिट भंडार में एक एसवीएन भंडार से एक तरफा रूपांतरित कर रहा हूं। अधिकांश उदाहरण --no-metadata ध्वज के साथ ऐसा करते हैं - क्या इस ध्वज का उपयोग करने का कोई फायदा है?क्या गिट svn क्लोन में --no-metadata का उपयोग करने का कोई फायदा है?

मैं समझता हूं कि ध्वज एसवीएन संशोधन संख्या को हटा देता है। मैं कारणों के बारे में सोच सकता हूं कि इन्हें आसपास रखने के लिए उपयोगी क्यों हो सकता है (जैसे कि बग ट्रैकिंग सॉफ़्टवेयर में उल्लिखित विशिष्ट प्रतिबद्धताओं का जिक्र करना)।

ध्वज का उपयोग करके के लिए तर्क क्या हैं? क्या सभी संबंधों को तोड़ने की संवेदना के अलावा कोई फायदा है?

उत्तर

12

यह वास्तव में अनुशंसित नहीं है:

यह विकल्प की सिफारिश नहीं है के रूप में यह यह मुश्किल नीचे SVN संशोधन संख्या को वर्ष संदर्भ मौजूदा दस्तावेज में रिपोर्ट और अभिलेखागार ट्रैक करने के लिए, बग बनाता है। यदि आप अंततः एसवीएन से गिट में माइग्रेट करने की योजना बना रहे हैं और एसवीएन इतिहास छोड़ने के बारे में निश्चित हैं, तो गिट-फ़िल्टर-शाखा (1) पर विचार करें। फ़िल्टर-शाखा गैर- "svn.authorsFile" उपयोगकर्ताओं के लिए लेखांकन जानकारी को आसानी से पढ़ने और पुनर्लेखन के लिए मेटाडेटा के को दोबारा सुधारने की अनुमति देता है।

+13

यह सवाल का जवाब नहीं देता है। हम जानते हैं कि इसकी अनुशंसा नहीं की जाती है, लेकिन यह वहां है; इसमें क्या बात है, यह क्या अच्छा कर सकता है? इस विकल्प का उपयोग करने के लिए किसी के कारण क्या हो सकते हैं? – thecoshman

+0

@thecoshman +1 कोई वैध कारण – pinkvoid

11

--no-metadata का उपयोग करने के लिए एक तर्क यह है कि यह आपके प्रतिबद्ध संदेशों को नहीं बदलता है। इसलिए यदि आप अलग-अलग स्थानों से प्राप्त करते हैं, तो प्रतिबद्ध संदेश समान होंगे और इस प्रकार प्रतिबद्ध हैश समान होंगे।

उदाहरण के लिए, अगर मैं git svn init एक स्थानीय file: URL से एक रेपो और बाद में एक https: URL से खींच, हर रेपो में प्रतिबद्ध, दोहराया जाएगा के बाद से git-svn-id: file:/// साथ प्रतिबद्ध के सभी ... git-svn-id: https:/// के रूप में दिलवाया हो जाएगा ... और नए SHA1 के साथ एन्कोड किया गया।

यदि मैं --no-metadata निर्दिष्ट करता हूं तो प्रतिबद्ध संदेश और यह sha1 समान होगा और मैं स्थानीय फाइल सिस्टम या उपवर्तन सर्वर से प्राप्त कर सकता हूं क्योंकि गिट रेपो में किसी भी दिए गए svn प्रतिबद्ध की केवल एक प्रति होगी ।

व्यक्तिगत तौर पर मैं यह पसंद करेंगे अगर वहाँ एक न्यूनतम मेटाडाटा विकल्प है, जो तोड़फोड़ पुनरीक्षण आईडी दर्ज की गई थी, लेकिन नहीं पूर्ण मेटाडाटा, लेकिन git-filter-branch साथ चारों ओर खिलवाड़ के बिना हम सब कुछ या कुछ के साथ फंस रहे हैं।

+1

इस मेटाडेटा का एक अन्य समस्या तब हो सकती है जब गिट सोचता है कि यह विभिन्न जड़ों से प्रतिबद्धता बनाना चाहिए, उदाहरण के लिए '/ परियोजना/ट्रंक 'बनाम बस'/परियोजना'। इससे एसआईवीएन में समान होने के बावजूद यह गिट में अलग हो सकता है। – jpmc26

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

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