2010-10-26 27 views
5

मेरी टीम में, कुछ हम विलय के साथ एक दूसरे की मदद करते हैं। आईई। मेरा कोड किसी और द्वारा ट्रंक में वापस विलय कर दिया गया है। ऐसा लगता है कि लेखक की जानकारी पूरी तरह से विलय के दौरान संरक्षित नहीं है। जब मैं एनोटेट (दोष) करता हूं तो विलय लेखक के रूप में दिखाया जाता है।एसवीएन - क्या एक विलय लेखक को संरक्षित करता है ताकि दोष सही होगा?

विलय कुछ गलत किया या मूल लेखक किसी मर्ज में संरक्षित नहीं है है?

उत्तर

10

अपने सर्वर पर नज़र रखने के विलय करता है और आपके ग्राहक उपकरण संस्करण 1.5 या बाद में हैं, तो यह काम करेगा:

svn blame --use-merge-history TARGET 
+4

या 'svn blame -g TARGET' (छोटा) –

1

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

कि सभी ने कहा है, अगर किसी को मर्ज में कोई गलती है तो आप व्यक्ति जो मर्ज के साथ 'मदद की' अगर वे यह कर एक थे, निश्चित रूप से के नाम चाहते हैं?

+0

'' SVN commit' को --username' विकल्प अन्य उपयोगकर्ता के रूप करने के लिए इस्तेमाल किया जा सकता । –

0

मैं नहीं 100% यकीन है, लेकिन मुझे लगता है कि इस सवाल का जवाब होगा: हाँ और नहीं ... व्याख्या AFAIK केवल आप लेखक है कि कोड की है कि लाइन के लिए सबसे हाल ही में परिवर्तन किया दिखाएगा। यह आपके मामले में, वह व्यक्ति होगा जिसने विलय किया था। यदि आपको आगे जाने की आवश्यकता है, तो आपको विलय से पहले संस्करण पर दोष देना होगा।

1

एसवीएन सर्वर पर एकमात्र जानकारी प्रतिबद्धता का लेखक है। यही दोष/एनोटेट का उपयोग करेगा।

तो नहीं, लेखक मर्ज के इस प्रकार के दौरान संरक्षित नहीं किया गया है। एसवीएन हैंडल की तुलना में इसे अधिक जानकारी की आवश्यकता होगी।

0

एक विलय svn:mergeinfo संपत्ति को बदल सकता है। इस मामले में, मूल दिए गए लेखकों के लिए किसी भी दिए गए विलय के लिए अप्रत्यक्ष रूप से खोजा जा सकता है।

लेकिन यह महज एक bandaid है - अगर आप मर्ज के माध्यम से ट्रैकिंग वास्तविक लेखक चाहते हैं, आप वितरित विकास के लिए डिजाइन उपकरण उपकरण के लिए स्विच करने की आवश्यकता हो सकती है: git, hg, या यहाँ तक darcs की तरह कुछ।

1

मेरी राय में दृष्टिकोण है कि मर्ज orignal लेखक द्वारा नहीं किया जाता है गलत है ... लेकिन यह एक अलग कहानी है।

सबवरिसन में प्रत्येक प्रतिबद्धता लेखक से जुड़ी है। एक विलय केवल एक कार्यशील प्रतिलिपि में किया जा सकता है जो किसी विशेष लेखक से संबंधित होता है। मेरी राय में एसवीएन में जानकारी सही है, क्योंकि जिस व्यक्ति ने कोड विलय किया है वह विलय के लिए "ज़िम्मेदार" है ... इसलिए उसके नाम से संबंध सही है।

+1

मुझे विश्वास है कि इस दृष्टिकोण के लिए मान्य परिदृश्य हैं। जैसे, हमारे पास हमारी कंपनी में कई प्रशिक्षु हैं और वे एक ही ऐप की विभिन्न फीचर शाखाओं में काम करते हैं। मैं निश्चित रूप से नहीं चाहता हूं कि वे उन अनुप्रयोगों के लिए अप्रत्याशित विलय करें जो अंततः लाइव हो जाएंगे। मैं पहले उनके परिवर्तनों की समीक्षा करना चाहता हूं और फिर अंततः विलय करना चाहता हूं। मैं अभी भी विलय के लिए ज़िम्मेदारी लेता हूं क्योंकि मैं प्रोजेक्ट मालिक हूं। इसके अलावा आप मेरा नाम एसवीएन इतिहास में मर्ज कमिटर के रूप में पाएंगे। लेकिन फिर भी, मैं जानना चाहता हूं कि कौन सी रेखा बनाई गई थी, जिसने मेरे नाम के बिना रास्ते में जा रहा था। –