SVN (तोड़फोड़) समस्या "फ़ाइल इसके अतिरिक्त निर्धारित है, लेकिन गायब है" - संस्करणों का उपयोग करना


94

मैं SVN के लिए संस्करणों का उपयोग कर रहा हूँ।

मैं यह संदेश देने और पाने का प्रयास करता हूं:

प्रतिबद्ध विफल (विवरण का पालन करें): '/Users/mike/Sites/mysite.com/astss-cvsdude/Trunk/cart/flashfile.swf' इसके अलावा निर्धारित है, लेकिन गायब है

मुझे लगता है कि यह इसलिए है क्योंकि मैंने रेपो में फ़ाइलों को जोड़ा था, और फिर उन्हें फाइलसिस्टम के माध्यम से हटा दिया।

मैं इसे केवल अपने परिवर्तन पर ध्यान देना चाहता हूं, और रेपो में परिवर्तन को लागू करना चाहता हूं।

मैं इसके पास कैसे आ सकता हूं?

जवाबों:


120

मुझे यकीन नहीं है कि आप क्या करने की कोशिश कर रहे हैं: यदि आपने फ़ाइल को इसके माध्यम से जोड़ा है

svn add myfile

जब आप अपनी अगली कमिटमेंट करते हैं तो आपने इस फाइल को अपनी रिपॉजिटरी में डालने के लिए ही svn को बताया था । आपके द्वारा टाइप करने से पहले रिपॉजिटरी में कोई बदलाव नहीं हुआ है

svn commit

यदि आप फ़ाइल को कमिट से पहले हटाते हैं, तो svnइसे अपने रिकॉर्ड में रखें (क्योंकि आपने इसे जोड़ा था) लेकिन इसे रिपॉजिटरी को नहीं भेज सकते क्योंकि फ़ाइल अब मौजूद नहीं है।

तो या तो आप फाइल को रिपॉजिटरी में सेव करना चाहते हैं और फिर उसे अपनी वर्किंग कॉपी से डिलीट कर दें: इस मामले में अपनी फाइल को वापस (ट्रैश से?) लेने की कोशिश करें, कमिट करें और बाद में फाइल को डिलीट करें।

svn delete myfile
svn commit

यदि आप पूर्ववत करना चाहते हैं addऔर बस फ़ाइल को फेंक दें, तो आप कर सकते हैं

svn revert myfile

जो svnइस मामले में ऐड-ऑपरेशन को पूर्ववत करने के लिए कहता है ।

संपादित करें

क्षमा करें, मुझे पता नहीं था कि आप अधिकतम OSX के लिए "संस्करण" GUI क्लाइंट का उपयोग कर रहे हैं। तो या तो GUI का उपयोग करते हुए युक्त निर्देशिका पर वापस लौटने का प्रयास करें या ठंडे पानी में कूदें और अपने छिपे हुए मैक कमांड शेल को आग दें :-) (इसे जर्मन OSX में "टर्मिनल" कहा जाता है, कोई भी विचार नहीं है कि इसे अंग्रेजी में कैसे लाया जाए। संस्करण ...)


2
यहाँ समस्या यह है कि वह GUI का उपयोग करता है। यदि वह किसी भी तरह कमांड-लाइन का उपयोग कर सकता है, तो वह svn rmफ़ाइल को केवल निर्देशिका में मौजूद नहीं होने पर भी कर सकता है ।
21

ठीक है, मुझे OSX के लिए "संस्करण" क्लाइंट के बारे में पता नहीं था। वह किसी भी तरह से "रिवर्ट" का उपयोग करने में सक्षम होना चाहिए, क्या उसे नहीं करना चाहिए? यह विंडोज पर TortoiseSVN के साथ काम करेगा।
मार्टिनस्टेनेर

svn cleanups और svn rms बाद में ... आपकी मदद के लिए धन्यवाद दोस्तों। क्या svn को बताने का एक तरीका है, "देखो, मैंने अपने ओएस के डिफ़ॉल्ट फ़ाइल प्रबंधक के माध्यम से कुछ फाइलें जोड़ीं, और अभी, इस फ़ोल्डर में सामान है, क्या मैं इस रेपो की वर्तमान स्थिति चाहता हूं ... अब इसे जाने दें होता है ... मुझे मत बताओ कि मैं क्या कर सकता हूं और इन फ़ाइलों के साथ क्या नहीं कर सकता, लेकिन हां, मेरे लिए यह सब ट्रैक रखें? "।
माइक

1
एक svn add *स्वचालित रूप से सभी नई, गैर-विसर्जित फ़ाइलें जोड़ता है, svn commitतुरंत इन परिवर्तनों को भंडार में बचाता है। Afaik को हटाने के लिए कोई विषम ऑपरेशन नहीं है, इसलिए यदि आप फ़ाइलों को हटाते हैं, तो आपको svn rmमैन्युअल रूप से कॉल करना होगा।
मार्टिनस्टाइनर

बस FYI करें, मैं भी इस समस्या थी और svn rmयहां तक कि के साथ, --forceकाम नहीं करता है - यह कहते हैं does not exist। इसलिए svn revertयहां करना सही है।
मिशेल मुलर

24

मुझे वही संदेश प्रदर्शित करने वाले संस्करणों के साथ एक ही समस्या थी। मैंने बस राइट-ऑफ की गई फ़ाइलों को क्लिक किया और राइट-क्लिक मेनू से 'रिवर्ट ...' को चुना और सब अच्छा था।

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


मुझे यह त्रुटि मिल रही थी क्योंकि मैंने एप्लिकेशन पदानुक्रम से एक फ़ोल्डर हटा दिया था। मैंने सिर्फ एक ही नाम के साथ खाली फ़ोल्डर जोड़ा और यह काम किया।
योगी

10

किसी फ़ाइल को जोड़ना, और फिर उसे हटाना उस तरह का ऑपरेशन है जिसे त्रुटि माना जाता है - और इसलिए SVN आपको बता रहा है। आपने इसे कुछ फ़ाइल डेटा की अपेक्षा करने के लिए कहा था और जब आप प्रतिबद्ध होते हैं, तब इसकी आपूर्ति नहीं करते हैं, लाल बत्ती चमकती है और सायरन बंद हो जाता है!

उत्तर आपके ऐड को पूर्ववत करने के लिए है, वैकल्पिक रूप से फाइल को कम करें और फिर फाइल सिस्टम और रेपो से इसे हटाने के लिए 'svn rm' का उपयोग करें।


मैं इसे Xcode से प्राप्त करता हूं जहां मैंने एक फ़ाइल जोड़ दी है और इसे गलत या कुछ और किया है और Xcode को हटाने के लिए कहा है (रद्दी में स्थानांतरित करें)। दुर्भाग्य से Xcode इसे इस स्थिति में छोड़ देता है और मेरे लिए
sv

3

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

svn add folder_path/*
svn commit -m "message"

2

फ़ोल्डर संदर्भ में फ़ाइलों का नाम बदलने के लिए Xcode का उपयोग करने से बचें। यदि आप Xcode का उपयोग करके किसी फ़ाइल का नाम बदलते हैं, तो उसे प्रतिबद्ध के लिए चिह्नित किया जाएगा। यदि आप बाद में इसे कमिट से पहले हटा देते हैं, तो आप इस त्रुटि को समाप्त कर देंगे।


0

मैंने वीएस के भीतर से फ़ाइल को हटा दिया, फिर 'रिपॉजिटरी एक्सप्लोरर' से, मैंने फाइल को काम करने वाली कॉपी में कॉपी कर दिया।


0

यदि आप TortoiseSVN का उपयोग कर रहे हैं ...

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

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