2010-05-07 17 views
6

मुझे संदेह है कि मेरे पास भ्रष्ट mergeinfo है लेकिन मुझे यकीन नहीं है। क्या किसी को पता है कि मैं कैसे दृढ़ संकल्प कर सकता हूं और समस्याओं को ठीक करने में मदद के लिए कौन से संसाधन हैं?मैं कैसे निर्धारित करूं कि svn: mergeinfo दूषित है और मैं इसे कैसे ठीक करूं?

यहां समस्या है। मेरी टीम हाल ही में चुस्त हो गई है और फीचर शाखाओं (वास्तव में कहानी शाखाओं) का उपयोग करती है जहां विभिन्न टीम एक ही स्रोत पर समान रूप से काम करती हैं। जैसे-जैसे कहानी तैयारी की उच्च स्थिति प्राप्त करती है, टीम ट्रंक में विलीन हो जाती है। विलय में परिवर्तन, अप्रत्याशित परिवर्तन और संघर्ष के कारण विलय में दिन या सप्ताह लग रहे हैं। हम 5-10 लोगों की टीमों के बारे में बात कर रहे हैं और प्रयास/मंथन उच्च होने का तरीका लगता है। ट्रंक करने वाली शाखा विलय, हल, परीक्षण, प्रतिबद्ध ख) पुश - -

लोग इस मर्ज पैटर्न क) PULL का उपयोग शाखा करने के लिए ट्रंक विलय, हल, परीक्षण, प्रतिबद्ध ग) को पुन: बनाएं शाखा (या आमतौर पर नई कहानी शाखा बनाते हैं और इसे पूरा होने के बाद बूढ़ा छोड़ देते हैं)

इसके अंत तक शाखा और ट्रंक संरेखण में होना चाहिए।

समस्याएं हम देख रहे हैं:

  1. परिवर्तन के दौरान सूचना नहीं ट्रंक करने वाली शाखा विलय SVN पर बाद में शाखा करने के लिए ट्रंक
  2. संघर्ष में दिखाई: मर्ज के दौरान mergeinfo गुण
  3. फ़ाइल गायब है, लेकिन नई फाइल पर स्थानीय संपादन शाखा में जोड़ा गया है और ट्रंक
  4. आने वाली + स्थानीय हटाएं (ट्रंक और शाखा पर विवाद के रूप में दिखाया गया फ़ाइल)

(1) नहीं होना चाहिए। शाखा से ट्रंक तक खींचने से दोनों को पहले से ही ट्रंक पर सभी बदलावों के लिए सिंक में रखा जाना चाहिए। शाखा-से-ट्रंक विलय में परिवर्तन ट्रंक पर होने वाले परिवर्तन होते हैं। तो पहले विलय में उन्हें शाखा में प्रचार करना चाहिए था लेकिन नहीं। यह मर्जिन्फो डेटा में भ्रष्टाचार को इंगित करता है जो ट्रंक परिवर्तनों को "छुपा" देगा।

(2) नहीं होना चाहिए। एसवीएन मर्ज ट्रैकिंग में बदलावों का प्रबंधन करना चाहिए। यह मर्जिन्फो डेटा

(3) में भ्रष्टाचार को इंगित करता है। यह शाखा पर जोड़े गए एक नई फाइल का मामला है। इसे ट्रंक में जोड़े गए एक नई फ़ाइल के रूप में दिखाना चाहिए। यह मर्ज जानकारी डेटा में भ्रष्टाचार को भी इंगित करता है।

(4) मुझे विश्वास है कि यह एक एसवीएन बग है और हम इसे ठीक नहीं कर सकते हैं। फिर भी अगर यह हमारी समस्या सिर्फ थे मैं

हम जोड़ने के लिए SVN 1.6.x और SVN + ssh का उपयोग कर ग्राहकों के साथ SVN 1.5.x सर्वर पर वर्तमान में कर रहे हैं हमें खुशी होगी। हम नवीनतम और महानतम एसवीएन तक जाने की योजना बना रहे हैं क्योंकि कुछ फिक्स हमारी समस्याओं को प्रभावित कर सकते हैं।

फिर भी, यह सुनिश्चित करता है कि हमारे mergeinfo डेटा गलत है।

  • -बनाए गए हैं कि सभी mergeinfo गुण

किसी भी अच्छे स्थानों मेरे लिए तलाश शुरू करने के लिए के मर्ज में आने वाले बदलाव

  • संघर्ष रिपोर्ट नहीं करते हैं?

  • +0

    एसवीएन 1.6.11 ग्राहक मेरा जवाब हो सकता है। मैंने वंडिस्को अपग्रेड साइट (जो चट्टानों) का उपयोग किया और मर्ज नरक बहुत कम हैलाइट –

    +0

    क्या आप "पुश" विलय के लिए "--reintegrate" ध्वज का उपयोग कर रहे हैं? तथ्य यह है कि आपके पास "हल" चरण है, यह मुझे बताता है कि आप नहीं हैं। मुझे विशिष्ट दस्तावेज नहीं मिल रहा है कि "--reintegrate" के बिना दो-तरफा विलय काम नहीं कर सकते हैं, लेकिन "--reintegrate" के अस्तित्व से पता चलता है कि svn का विलय अन्यथा कार्य तक नहीं है। – slowdog

    उत्तर

    2

    मैंने एसवीएन ब्रांचिंग/विलय के साथ कुछ प्रयोग किए, और मुझे पता चला कि कुछ स्थितियां हैं जब विलय बस काम नहीं करता है - उदाहरण के लिए ट्रंक से परिवर्तन ओवरराइट किए जाते हैं। तो यदि आप फीचर शाखाओं के लिए एसवीएन का उपयोग करते रहें, तो आप दर्द की दुनिया में होंगे।

    मैंने गिट के साथ समान प्रयोग किए और मुझे गलत विलय पाने का कोई तरीका नहीं मिला है। यदि गिट में जाने से टीम/प्रबंधन द्वारा स्वीकार्य हो सकता है, तो मैं दृढ़ता से इसका उपयोग करने की अनुशंसा करता हूं।

    +0

    मैंने यह सुना है, लेकिन यह कि mergeinfo गुणों पर विवाद एक गहरी समस्या का संकेत देते हैं –

    +1

    मुझे लगता है कि मुझे खुद को स्पष्ट होना चाहिए: मैंने एसवीएन में विलय तोड़ने की कोशिश की और मैं अपने दूसरे प्रयास में सफल रहा, लेकिन मैं इसे बनाने में सक्षम नहीं था गिट में भ्रष्ट/गलत विलय। तो आप mergeinfo समस्याओं के मूल कारण को ट्रैक करने का प्रयास कर सकते हैं, या आप अपने समय का अधिक प्रभावी ढंग से उपयोग कर सकते हैं और अधिक शाखा-अनुकूल संस्करण नियंत्रण प्रणाली पर स्विच कर सकते हैं। – chalup

    +1

    उस समय सीमा में गिट में जाने के लिए मैं एक विकल्प नहीं है। इसलिए, मुझे एसवीएन –

    2

    इसी तरह की परिस्थितियों के कारण हमारे पास समान समस्याएं थीं और बड़े पैमाने पर उन्हें हल किया है।

    आप शाखा निर्माण के बाद ट्रंक से अपनी शाखा में मर्ज किए जाने हैं, तो आप झंडा ट्रंक करने के लिए शाखा के साथ प्रतिबद्ध (SVN का उपयोग कर --record-केवल विलय) अन्यथा जब की जरूरत है,:

    प्रमुख एक यह है आप ट्रंक में वापस फिर से जुड़ने की कोशिश करते हैं, यह ट्रंक में ट्रंक की प्रतिबद्धता को वापस ट्रंक में मर्ज करने का प्रयास करता है।

    यह स्पष्ट रूप से परिवर्तनों को वापस बाद में trunk-> शाखा के बाद किए गए ट्रंक के लिए प्रतिबद्ध, आदि

    तो (यदि आप एक नई फ़ाइल या ट्रंक में निर्देशिका बनाई गई विशेष रूप से पेड़ संघर्ष) बड़े पैमाने पर संघर्ष का कारण हो जाता है समाप्त होता है के बाद यह बनाया गया है हमारी प्रक्रिया एक शाखा में या तो कभी नहीं सिंक ट्रंक करने के लिए है (अल्पकालिक शाखाओं के लिए ठीक काम करता है), या निम्न कार्य करें: ट्रंक

  • ट्रंक करने के लिए प्रतिबद्ध है और शाखा
  • से

    • शाखा ख
    • शाखा में ट्रंक के एकीकरण और प्रतिबद्ध (संघर्ष को हल करने लेकिन अन्यथा कोई परिवर्तन करने, यहां तक ​​कि संकलित करने के लिए)
    • तुरंत एक SVN-केवल --record का विलय कर ट्रंक करने वाली शाखा संशोधन के लिए प्रतिबद्ध
    • साथ किसी भी अन्य मुद्दों को ठीक शाखा और विकास जारी रखें
    • शाखा से ट्रंक को फिर से करने के लिए पुन: व्यवस्थित करें।

    मैंने पाया: http://www.collab.net/community/subversion/articles/merge-info.html काम करने के दौरान हम क्या गलत कर रहे थे।

    +0

    यह भी देखें http://stackoverflow.com/questions/3309602/subversion-branch-reintegration-in-v1-6 – Malcolm

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