कछुआ की गैर-पुनरावर्ती कार्य कैसे करता है?


110

मैंने स्थानीय रूप से एसवीएन शाखा (मेरी शाखा) की एक प्रति की जाँच की है, जिसमें से मैं एक अलग शाखा (जिसमें एक पूरी तरह से अलग संरचना) से विलय कर चुका हूँ। इसलिए मूल रूप से बहुत सारी विलोपन (पुरानी फाइलों की) और परिवर्धन (नई फाइलों की) हैं।

जब मैं भंडार (मेरी शाखा को) में विलय करने की कोशिश करता हूं, तो कछुआ कहता है

यह कमिट पुनरावर्ती नहीं है, और कमिट के लिए चुने गए / बदले गए फ़ोल्डर हैं। इस तरह के कदम / नाम हमेशा रिपॉजिटरी में पुनरावर्ती रूप से किए जाते हैं। क्या आप वैसे भी कमिटमेंट करना चाहते हैं?

क्या इस प्रतिबद्धता के साथ आगे बढ़ना ठीक है? यदि नहीं, तो मुझे क्या करना चाहिए ताकि कोई समस्या न हो?

इसके अलावा, कुछ फ़ाइलों के लिए जो मैंने जोड़ा है, मैंने जोड़ने के बाद बदलाव किए हैं (यदि यह प्रकृति को प्रभावित करता है)।

जवाबों:


129

Google द्वारा इसे ठीक करने का तरीका: कमिट विंडो में F5 दबाएं ("चेतावनी पॉपअप" में नहीं)

देखें http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=757&dsMessageId=2831045 जानकारी के लिए।

26.08.2011 22:39 पर, रयान जे ओलोस ने लिखा:

कई महीनों के लिए अब मुझे निम्नलिखित डायलॉग बॉक्स दिखाई दे रहे हैं जब कमिट शुरू हो रही है। यह अक्सर तब होता है जब मर्ज का पालन करने का प्रयास किया जाता है।

हालाँकि, मैंने हाल ही में देखा है कि अगर मैं रद्द कर देता हूं और फिर फ़ाइल सूची (F5) को मैन्युअल रूप से ताज़ा करता हूं, तो दूसरी बार प्रतिबद्ध करते समय मुझे फिर से संदेश दिखाई नहीं देता। यह प्रतिबद्धता ठीक है और आगे कोई समस्या नहीं है।

प्रतिबद्ध संवाद परिवर्तन सूचनाओं के लिए एक पृष्ठभूमि थ्रेड में काम कर रहे कॉपी पर नज़र रखता है। ऐसी सूचनाएँ OS द्वारा भेजी जाती हैं, जब केस फाइलों को संशोधित / स्थानांतरित / नामांकित / संशोधित किया जाता है ... यदि ऐसी सूचना प्राप्त होती है, तो प्रतिबद्ध संवाद पहले कुछ जाँच करता है, इसलिए यह उनमें से अधिकांश को छोड़ सकता है। यदि सूचना इंगित करती है कि किसी फ़ाइल को चेक नहीं किया गया है और कमिट डायलॉग में दिखाई नहीं दे रहा है, तो यह किसी भी तरह बदल गया है, यह गैर-पुनरावर्ती कमिटिंग पर वापस आ जाता है। ऐसा इसलिए है क्योंकि अगर आपके पास किसी अन्य संपादक में एक फ़ाइल है जैसे कि और एक संवाद खुला है, जबकि प्रतिबद्ध संवाद खुला है, तो उस फ़ाइल को सहेज लें, भले ही आपने इसे प्रतिबद्ध संवाद में नहीं देखा हो (यह प्रदर्शित नहीं होता है) जब तक आप F5 के साथ संवाद को ताज़ा नहीं करते)।

इसलिए यदि आप उस चेतावनी संवाद को अक्सर देखते हैं, तो कृपया जांच लें कि कोई अन्य उपकरण / ऐप चल रहा है जो आपकी कार्यशील प्रतिलिपि में फ़ाइलों को संशोधित करता है।

और जैसा कि आपने देखा: यदि आपने F5 मारा, तो वह 'गैर-पुनरावर्ती ध्वज' रीसेट हो जाता है क्योंकि ताज़ा करने के बाद, आप सभी फ़ाइलों को फिर से देखते हैं - संवाद शुरू करने के बाद भी जिन्हें आपने संशोधित किया था।

स्टीफन


1
जवाब में लिंक मृत प्रतीत होता है। यहां इंटरनेट आर्काइव web.archive.org/web/20150306224932/http://…
— buzz3791

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

26

मेरे पास एक ही मुद्दा था लेकिन इसे उन फ़ाइलों में परिवर्तन से हल कर दिया, जिन्हें मैंने 'इग्नोर-ऑन-कमिट' के लिए चिह्नित किया था

एक बार जब मैंने इन फ़ाइलों को वापस ला दिया, तो कछुआ मर्ज से अन्य सभी फ़ाइलों को करने में सक्षम था


एक वास्तविक कारण क्या है? क्यों या कैसे ये फाइलें समस्या का कारण बन रही हैं?
— मन्नोज

5

क्या यह ठीक है अगर मैं इस प्रतिबद्ध के साथ आगे बढ़ूं?

नहीं, आपकी प्रतिबद्धता डब्ल्यूसी-ट्री में सभी परिवर्तनों को अनदेखा करेगी और केवल जड़-स्तरीय परिवर्तनों (टूटे हुए मर्ज) को प्रतिबिंबित करेगी।

प्रारंभ में गैर-पुनरावर्ती की जाँच करते समय आपने एक त्रुटि की। आप CLI में पैरामीटर का उपयोग करके अच्छा, पूर्ण प्रतिबद्ध प्रदर्शन करने की कोशिश कर सकते हैं --depth infinityया TortoiseSVN GUI में इस स्विच को पा सकते हैं।

svn commit --depth infinity . -m "Merge"

1
"आपने गैर-पुनरावर्ती शुरू में जाँच करते समय एक त्रुटि की।" नहीं, जरूरी नहीं। मैंने अपना WC उसी तरह से चेक किया, जैसा मैं हमेशा करता हूं, लेकिन मुझे अभी भी यह समस्या है। वास्तव में, यह किसी भी वैकल्पिक समाधान के लिए बिल्कुल भी ऐसा प्रतीत नहीं होता है।
— कीथ एम

यह पूरी तरह से झूठ है। मुझे यह संदेश समय-समय पर मिलता है और मैंने अपनी कार्य प्रतिलिपि की पुनरावृत्ति उसी तरह से की है जैसे मैंने हमेशा की थी
— 1800 जानकारी

1

इसके अलावा कुछ फाइलें जो मैंने एसवीएन-जोड़ी हैं, मैंने जोड़ने के बाद बदलाव किए हैं (यदि यह प्रकृति को प्रभावित करता है)।

मेरे मामले में, यही वह कारण था जिसके कारण संदेश प्रकट हुआ, यहां तक ​​कि मैंने उन फाइलों को भी कमिट कर दिया।

बदसूरत समाधान जो केवल सुरक्षित रूप से काम करता है अगर कुछ ही फाइलें प्रभावित होती हैं:

  1. बदली हुई फ़ाइलों की एक प्रति बनाएँ
  2. बदली हुई फ़ाइलों को वापस करें
  3. मर्ज / पुनर्निवेश
  4. मूल फ़ाइलों को वापस मूल स्थान पर कॉपी करें

स्वयं को याद दिलाएं: केवल एक शाखा को फिर से विभाजित करें यदि लक्ष्य (ट्रंक) साफ है।


1

ऐसा लगता है कि कॉल करने से पहले TortoiseSVN किसी प्रकार की वैधता की जाँच करता है। अच्छा है लेकिन त्रुटि संदेश बहुत अस्पष्ट है।

जब मुझे इस मुद्दे का सामना करना पड़ा, तो मैं कमिट करने के लिए svn कमांड लाइन का उपयोग करके वापस चला गया। कारण इस कारण से विफल हो गया कि एक भी फ़ोल्डर अप टू डेट नहीं था। बस उस फ़ोल्डर को अपडेट करने के बाद, मैंने एक बार फिर "svn प्रतिबद्ध" चलाया और यह गुजर गया।

संपादित करें: PS: इससे पहले कि आप इसे आज़माएं, सुनिश्चित करें कि आपके पास "कमिट पर ध्यान न दें" के रूप में चिह्नित की गई कोई फ़ाइल नहीं है। "प्रतिबद्ध पर ध्यान न दें" कछुआ विशिष्ट है और एसवीएन प्रतिबद्ध इन परिवर्तनों को भी चुनता है।


1

बस मैंने सोचा कि मैं इसे पोस्ट करूंगा क्योंकि यह मेरे लिए काम करता है ...

ऐसा होने का कारण यह है कि मैंने आंशिक रूप से उन नई परियोजनाओं में से एक का नाम बदल दिया था, जिसे मैंने बनाया था और किसी कारण से वे सभी स्क्रीन पर "मिसिंग" के रूप में दिखाई दीं।

जब मैंने प्रोजेक्ट और फोल्डर को हटा दिया (जिस पर SVN ने टिक लगा दिया था) और इसे फिर से एक नए प्रोजेक्ट के रूप में वापस डाल दिया, अचानक "मिसिंग" सभी "एड" में बदल गया और कमिटमेंट मुझे बिना किसी चेतावनी के ठीक चला गया। ।

उम्मीद है की यह मदद करेगा!


1

मैंने इस मुद्दे को देखा और कारण कुछ स्पष्ट फाइलें थी, जिनमें कोई स्पष्ट कारण नहीं था। वे 'सामान्य' थे, भले ही मूल फ़ोल्डर को 'जोड़ा' के रूप में सही ढंग से दिखाया गया हो। मैंने उन 'सामान्य' परिवर्तनों को वापस ले लिया और फिर उन्हें मैन्युअल रूप से फिर से किया। इसने प्रत्येक जोड़ा वस्तु को प्रतिबद्ध सूची में दो बार दिखाया लेकिन इसने त्रुटि को हल कर दिया और अब सब कुछ कार्य क्रम में प्रतीत होता है।

इसका किसी अन्य उत्तर की तरह अनदेखी करने से कोई लेना-देना नहीं था, यह सिर्फ कछुआ एसवीएन में बग की तरह लग रहा था।


मैं जो बता सकता हूं, उससे TortoiseSVN फ़ाइलों को पुन: स्थानांतरित नहीं करता है। फ़ोल्डर को ले जाने से फ़ोल्डर का इतिहास बदल जाता है, लेकिन उसमें फाइलें नहीं होती हैं। इसका मतलब है कि TortoiseSVN के साथ फ़ोल्डर को स्थानांतरित करने के लिए आपको वांछित गंतव्य में फ़ोल्डर को फिर से बनाना होगा, फ़ोल्डर जोड़ना होगा, फिर मूल फ़ोल्डर की सामग्री को नए पर ले जाना होगा। या सिर्फ कमांड लाइन का उपयोग करें।
— ब्रैडली सिंगर

मेरा मानना ​​है कि यह एक मर्ज से था, एक चाल से नहीं। जब तक वे समान संचालन नहीं करते, मैं पालन नहीं कर रहा हूं।
— क्रिस

0

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

इसलिए उन फाइलों को वापस लाना और उन्हें फिर से बदलना काम कर सकता है, लेकिन आपको सिर्फ बदलाव नहीं करना चाहिए।


0

मेरा बस यही मुद्दा था। सभी फ़ाइलों का चयन करने के बजाय, मैंने संस्करण पर क्लिक किया और सब कुछ अच्छी तरह से काम किया। मेरे मामले में, विकल्प ने सभी फ़ाइलों को चुना, इसलिए अब सब कुछ ठीक है।


-4

मैं कछुआ के लिए एक विकल्प नहीं जानता, लेकिन आप कमांड लाइन का उपयोग कर सकते हैं

svn commit --non-recursive [folder]

यह काम करने के लिए यू की तरह ही काम करना चाहिए


अन्य उत्तर कह रहे हैं कि यह वह नहीं होगा जो आप वास्तव में करना चाहते हैं।
— कीथ एम
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.