आप svn को 'आउट ऑफ डेट' त्रुटि से कैसे दूर कर सकते हैं?


336

मैं तोड़फोड़ में एक स्थान से दूसरे स्थान पर एक निर्देशिका संरचना को स्थानांतरित करने का प्रयास कर रहा हूं, लेकिन मुझे एक Item '*' is out of dateत्रुटि मिलती है ।

मेरे पास नवीनतम संस्करण है (अब तक मैं बता सकता हूं)। svn st -uएमवी कमांड के अलावा कोई अंतर नहीं है।


11
तुमने svn की कोशिश की?
स्किलेव्ज़

3
एक तुच्छ समस्या-टॉलर है: यदि कोई फ़ोल्डर और सामग्री हटा रहा है, तो केवल पहले सामग्री हटाएं, svn, फिर फ़ोल्डर हटाएं, फिर svn फिर से।
फटी नो

संबंधित नोट: subversion.apache.org/docs/release-notes/…
bahrep

जवाबों:


636

मुझे कभी-कभी खिड़कियों पर TortoiseSVN के साथ यह मिलता है। मेरे लिए समाधान svn updateनिर्देशिका के लिए है, भले ही डाउनलोड या अपडेट करने के लिए कोई संशोधन नहीं हैं। यह मेटाडेटा के लिए कुछ करता है, जो इसे जादुई रूप से ठीक करता है।


4
मैंने svn को बदल दिया: एक फ़ोल्डर की संपत्ति को अनदेखा करें, और आउट ऑफ डेट त्रुटि होने लगी। लेकिन जैसा कि आपने कहा, बस इसे अपडेट करने से काम चला।
सुशांत

4
जब मैं उस निर्देशिका को अपडेट करने की कोशिश करता हूं, तो मुझे "svn: दो शीर्ष-स्तरीय रिपोर्टें मिलती हैं जिनमें कोई लक्ष्य नहीं है" SVN से नफरत करने का एक और कारण। Git के साथ, मुझे कभी भी इस तरह की बेवकूफी की समस्या नहीं हुई जैसे कि किसी डायरेक्टरी को डायरेक्टरी में घुमाया जाता है।
डैन डसेलस्क्यू

मैं अपने माता-पिता फ़ोल्डर में 'GUI से बाहर' त्रुटि पर संस्करण GUI का उपयोग कर रहा था। मैंने मूल फ़ोल्डर को अपडेट किया और फिर त्रुटियों के बिना प्रतिबद्ध किया।
मील्मेव

1
यह svn बदलने के कारण भी हुआ: मेरे लिए अनदेखा करें और svn अपडेट ने इसे ठीक कर दिया। धन्यवाद!
नाथन श्वरमन

8
Subclipse में "Team -> Update to HEAD" का उपयोग करें। मेरे साथ ठीक काम करता है।
नवरामजा

42

सभी स्पष्ट चीजों की कोशिश करने के बाद, और कुछ अन्य सुझाव यहां दिए गए हैं, चाहे कोई भी भाग्य हो, एक Google खोज ने इस लिंक का नेतृत्व किया (लिंक अब काम नहीं कर रहा है) - तोड़फोड़ कहती है: आपकी फ़ाइल या निर्देशिका संभवतः आउट-ऑफ़-डेट है

संक्षेप में, चाल को .svn निर्देशिका (उस निर्देशिका में जिसमें आपत्तिजनक फ़ाइल है) पर जाना है, और "ऑल-wcprops" फ़ाइल को हटाना है

मेरे लिए काम किया जब और कुछ नहीं किया।


यह किया! धन्यवाद! किसी के पास कोई सुझाव है कि यह कैसे होता है और पहली जगह में इससे कैसे बचा जाए?
जेसी बर्नम

मेरे लिए काम किया। मैंने सभी 'सभी-wcprops' फ़ाइलों को निकालने के लिए समाप्त कर दिया: खोज। -नाम सभी-wcprops -exec rm -rf {} \;
पीटर हफ

मुझे लगता है कि आप, SVN उपकरणों और विकल्पों के द्वारा इस को हल करने के लिए सक्षम होना चाहिए में संरचना फ़ाइलों को हटाने के बिना
ऑगस्टो

+1, यह एकमात्र चीज है जिसने मेरे लिए काम किया। दूसरा उपाय नहीं किया।
क्लेटन ड्यूक

9
मेरे लिए काम कर रहे हैं, निर्देशिका के all-wcpropsभीतर कोई फाइल नहीं है.sv
ulkas

39

मेरा मानना ​​है कि यह समस्या .svn फ़ाइल से आ रही है। यह पुराने माता-पिता, नए माता-पिता या पुराने में गलत है। मैं आपके शुरुआती बिंदु पर वापस लौटने की कोशिश करूंगा। फ़ोल्डर की स्वच्छ प्रतिलिपि प्राप्त करने के लिए निर्यात का उपयोग करें। स्वच्छ प्रतिलिपि को नए स्थान पर ले जाएं, और एक ऐड का उपयोग करें और इस मूव को डिलीट करें। यह मैन्युअल रूप से एसवीएन करता है, लेकिन यह काम कर सकता है।


4
तोड़फोड़ वास्तव में प्रतिलिपि तब हटाती है, जो वहां हटाने और यहां जोड़ने के लिए अलग है।
सन्

37

मैंने पाया है कि यह मेरे लिए काम करता है:

svn update
svn resolved <dir>
svn commit

svn updateपहले किए बिना मेरे लिए काम किया , मेरे पास एक परिदृश्य था जहां मैं अपडेट से बचना चाहता था। (इसलिए मैंने सिर्फ संकल्प किया और प्रतिबद्ध किया और यह काम किया)
बोर्नटोडकोड

यह मेरी स्थिति का इलाज है, कुछ और काम नहीं किया। धन्यवाद!
टेक्ससडेव

14

स्थानीय प्रतिलिपि को अपडेट करने की कोशिश की, और प्रश्न में आइटम को वापस कर दिया, और फिर भी 'आउट ऑफ डेट' त्रुटि मिली। यह किसी कारण के लिए काम किया:

svn update --force /path/to/dir/or/file

11

मुझे कई फ़ोल्डरों में बस यही समस्या थी और यही मैंने किया था:

1) "टीम सिंक्रोनाइज़" परिप्रेक्ष्य में, फ़ोल्डर पर राइट क्लिक करें> ओवरराइड और अपडेट
2) फ़ोल्डर को फिर से हटाएं
3) कमिट करें और खुश रहें


5

धन्यवाद। यह सिर्फ मेरे लिए इसे हल किया। svn अद्यतन - लागू / फ़ाइल नाम के लिए पथ /

यदि स्थानीय निर्देशिका में आपकी हाल की फ़ाइल समान है, तो कोई संकेत नहीं हैं। यदि फ़ाइल अलग है, तो यह tf, mf आदि के लिए संकेत देता है ... chosing mf (मेरा पूर्ण) बीमा कुछ भी अधिलेखित नहीं है और जब किया तो मैं प्रतिबद्ध हो सकता हूं।

जे कम्पुटर


5

मैं अपडेट बटन दबाकर इसे हल करने का प्रबंधन करता हूं


4

जैसे @ अलेक्जेंडर-क्लाईबिन सुझाव देते हैं, रिपॉजिटरी में कदम रखें। यह बहुत तेज़ होने वाला है, खासकर यदि आपके पास स्थानांतरित करने के लिए बड़ी मात्रा में डेटा है, क्योंकि आपको उस सभी डेटा को फिर से नेटवर्क पर स्थानांतरित नहीं करना होगा।

svn mv https://username@server/svn/old/ https://username@server/svn/new/

बस ठीक काम करना चाहिए


मैं एक svn up; svn mvकमांड श्रृंखला के साथ इस समस्या को आ रहा था , और यह चाल अच्छी तरह से किया था। धन्यवाद।
डोपघोटी

3

कमांड को निष्पादित करने से पहले अपनी फ़ाइल या अपने पथ का उपयोग करें अपने परिवर्तनों का एक bk करें

sudo rm -r /path/to/dir/

उपरांत :

svn up and commit or delete 

2

क्या आप सुनिश्चित हैं कि आपने सिर की जाँच की है और कम संशोधन नहीं किया है? इसके अलावा, क्या आपने यह सुनिश्चित करने के लिए एक अद्यतन किया है कि आपको नवीनतम संस्करण मिल गया है?

इस बारे में चर्चा चल रही है http://svn.haxx.se/users/archive-2007-01/0170.shtml


मान लीजिए कि आप एक पुरानी कॉपी चेक करना चाहते हैं? फिर चेकिन काम करने का सबसे आसान तरीका क्या है?
OJW

यदि आप किसी पुरानी कॉपी पर वापस जाने की बात कर रहे हैं, तो हमेशा की तरह इसे जांचें। इसमें नया रिवीजन नंबर मिलेगा।
jgreep


2

"आउट ऑफ डेट" त्रुटि संदेश का कम से कम एक अन्य कारण है। मेरे मामले में समस्या थी .svn / dir-props जो कि "svn propset svn" को नजरअंदाज करके बनाया गया था, जिसे अनदेखा करें -F .ignignore। " पहली बार। डिलीट .svn / dir-props एक बुरे विचार की तरह लगता है और अन्य त्रुटियों का कारण बन सकता है, इसलिए गलत "svn propset" को साफ करने के लिए "svn propdel" का उपयोग करना सबसे अच्छा हो सकता है।

# Normal state, works fine.
> svn commit -m"bump"  
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 509.

# Set a property, but forget to commit.
> svn propset svn:ignore -F .gitignore .
property 'svn:ignore' set on '.'

# Edit a file. Should have committed before the edit.
> svn commit -m"bump"                   
Sending        .
svn: Commit failed (details follow):
svn: File or directory '.' is out of date; try updating
svn: resource out of date; try updating

# Delete the property.
> svn propdel svn:ignore .              
property 'svn:ignore' deleted from '.'.

# Now the commit works fine.
> svn commit -m"bump"     
Sending        eac_cpf.xsl
Transmitting file data .
Committed revision 510.

2

यदि आप github svn पुल का उपयोग कर रहे हैं, तो यह संभव है क्योंकि चीजों के github के पक्ष में कुछ बदल गया है। समाधान सरल है, आपको बस दौड़ना है svn switch, जो इसे ठीक से खुद को खोजने देता है, फिर अपडेट करें और सब कुछ काम करेगा। बस अपने चेकआउट की जड़ से निम्नलिखित चलाएँ

svn info | grep Relative 
svn switch path_from_previous_command
svn update

या

svn switch `svn info | grep Relative | sed 's_.*: __'`
svn update

इस समाधान का आधार ली प्रीमेम्बरबर्गर के ब्लॉग से आता है


1

आप इसे का उपयोग कर आगे बढ़ रहे हैं svn mv, या बस mv? मुझे लगता है कि सिर्फ mvइस मुद्दे का उपयोग करने का कारण हो सकता है।


1

मैंने अपने स्थानीय मशीन में सुरक्षित रखने के लिए डीआईआर स्थानांतरित किया, फिर svn ने बेवकूफ निर्देशिका को हटा दिया, फिर प्रतिबद्ध। जब मैंने अपने स्थानीय मशीन से फ़ोल्डर को जोड़ने की कोशिश की, तो यह त्रुटि को फेंक दिया (एसवीएन चाल ने वही काम किया जब मैंने फ़ोल्डर का नाम बदलने की कोशिश की)। इसलिए मैं वापस लौट आया, फिर मैंने एक Mkdir DIRNAME किया, जोड़ा और प्रतिबद्ध किया। फिर मैंने सामग्री को इसमें जोड़ा और प्रतिबद्ध किया, और यह काम किया।


1
मैं रिपॉजिटरी कंटेंट (svn delete) बदलने से बचूंगा, सिर्फ इसलिए कि मेरा स्थानीय चेकआउट किसी तरह भ्रष्ट हो गया है।
लार्स नोस्किंस्की

1

मैं कुछ फ़ाइलों को प्रत्येक कुछ निर्देशिकाओं को हटाने के बाद बेतरतीब ढंग से इस त्रुटि को दूर किया। मैंने नेटबीन्स के माध्यम से निर्देशिकाओं को हटा दिया और महसूस किया कि यह वास्तव में उन्हें हटा नहीं था। यह सिर्फ निर्देशिकाओं के अंदर सब कुछ हटाने के लिए लग रहा था और Netbeans के भीतर निर्देशिका के संदर्भ को हटा दिया। वे अभी भी फाइल सिस्टम पर मौजूद थे। सुनिश्चित करें कि वे फ़ाइल सिस्टम से हटा दिए गए हैं और फिर से प्रयास करें।


1

यदि एक बार बस एक नई वर्किंग कॉपी की जाँच करके और इस नई जाँच की गई के साथ प्रतिबद्ध त्रुटियों को फेंकने वाली .svn निर्देशिका को बदलकर इसी तरह की समस्या को हल किया जाता है। मेरे मामले में कारण यह था कि एक रिपॉजिटरी भ्रष्टाचार के बाद और बैकअप से पुनर्स्थापित करने के बाद काम की प्रतिलिपि एक संशोधन की ओर इशारा कर रही थी जो कि पुनर्स्थापना भंडार में मौजूद नहीं था। साथ ही "आइटम आउट ऑफ डेट" त्रुटियां मिलीं। काम करने से पहले अद्यतन प्रतिलिपि को अद्यतन करने से यह हल नहीं हुआ बल्कि .svn की जगह जैसा कि ऊपर वर्णित है।


1

मैंने ऐसा किया और इसने मेरे लिए काम किया:
1. अपनी फाइल का बैक-अप लें। आप बस अपने कोड को टेक्स्ट फ़ाइल में कॉपी कर सकते हैं।
2. उस फाइल पर राइट क्लिक करें जिसे आप कमिट करना चाहते हैं >> टीम >> शो हिस्ट्री। 3. "शो हिस्ट्री" पैनल में आप उस फाइल के सभी संशोधन देखेंगे। फ़ाइल के नवीनतम संशोधन पर राइट क्लिक करें >> संशोधन प्राप्त करें: यह आपके स्थानीय परिवर्तनों को ओवरराइड करेगा।
4. अब, अपने कोड को बैक-अप फ़ाइल (चरण # 1) के साथ नवीनतम फ़ाइल के साथ मर्ज करें।
5. नई मर्ज की गई फ़ाइल को सिंक्रनाइज़ और कमिट करें।


1

अपने सर्वर और क्लाइंट को १.९ में तोड़फोड़ के लिए अपग्रेड करें।

यदि out of dateत्रुटि अनियमित रूप से तब होती है जब यह सामान्य रूप से नहीं होना चाहिए, जब आप कमिट करते हैं, तो यह संकेत दे सकता है कि आप एक पुराने और असमर्थित सबवर्सन 1.7 या पुराने क्लाइंट या सर्वर का उपयोग कर रहे हैं।

समस्या को हल करने के लिए आपको सर्वर और क्लाइंट को अपग्रेड करना चाहिए। प्रासंगिक तोड़फोड़ 1.9 रिलीज नोट्स प्रविष्टि देखें: HTTPv1 पर प्रतिबद्ध करते समय "आउट ऑफ डेट" त्रुटियां


1
यह भी विंडोज पर TortoiseSVN 1.8.8 के साथ मेरे साथ हुआ। 1.9 में अपडेट करने से मदद मिली।
मार्टिन पेक्का

1

त्रुटि इसलिए है क्योंकि आपने उस विशेष फ़ाइल को अपडेट नहीं किया है, पहले अपडेट करें उसके बाद ही आप फ़ाइल कर सकते हैं।


1

सभी की कोशिश की लेकिन सीधे .svn में बदलें। यहाँ मेरे समाधान से कुछ नहीं हुआ।

ग्रहण> विंडो> शो व्यू> इतिहास में मैंने देखा है कि फ़ाइल नवीनतम संशोधन में नहीं है, हालांकि मैंने कई svn "ओवरराइड और अपडेट" / "रिवर्ट" / फ़ाइल और चेकआउट को हटा दिया है।

इसलिए मैं पैकेज एक्सप्लोरर गया> फ़ाइल पर राइट क्लिक करें> रिप्लेसमेंट से>> नवीनतम के साथ बदलें

हिस्ट्री व्यू में एक और लुक उस फाइल को दिखाया गया जो अब लेटेस्ट रिवीजन पर है।


1

"क्लीन अप" यह आपको ट्रैक पर मिलेगा।

Svn फ़ोल्डर पर राइट क्लिक करें और 'क्लीन अप' पर क्लिक करें, ऐसा करें यदि आपको वह त्रुटि मिलती है।


0

यह तब हुआ जब मैंने ट्रंक से फ़ाइलों के साथ पहले रिलीज की एक शाखा को अपडेट किया। मैंने अपने ट्रंक चेकआउट फ़ोल्डर से फ़ोल्डरों को कॉपी करने के लिए विंडोज एक्सप्लोरर का उपयोग किया , और उन्हें रिलीज शाखा चेकआउट फ़ोल्डर के मेरे ग्रहण दृश्य में चिपकाया। अब विंडोज एक्सप्लोरर को कॉन्फ़िगर किया गया था कि "छिपी हुई" फाइलों को "" के साथ शुरू न करें। ", इसलिए मैं अपनी रिलीज शाखा के चेकआउट फ़ोल्डर में सभी गलत .svn फ़ाइलों को चिपका दिया गया। रवींद्र!

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


0

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


0

मेरे मामले में केवल स्थानीय संस्करण को हटाना और नए सिरे से जांच करना एक समाधान था।


0

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


0

हल करने के लिए, मुझे समस्या के साथ फ़ाइल को वापस करने की आवश्यकता है, और अपनी कार्यशील प्रतिलिपि को अद्यतन करने की आवश्यकता है, और बाद में मैंने फ़ाइल को फिर से संशोधित किया और इन चरणों के बाद त्रुटि नहीं हुई।


0

बस कमांड लाइन में svn करें या यदि आप विंडोज़ में हैं तो svn अपडेट विकल्प चुनें।

  • एक बार यह हो जाने के बाद, यह आपको आगे की कार्रवाई करने की अनुमति देता है जैसे कमिटिंग और अन्य।

0

मुझे यह बस तब मिला जब मैं commitएक trunkनिर्देशिका से कोशिश कर रहा था । निर्देशिका svn updateसे करने से trunkत्रुटि हल नहीं हुई; हालाँकि, svn updateमूल निर्देशिका (जहाँ .svnनिर्देशिका संबंधित है) से करते हुए त्रुटि को हल किया।

क्या हुआ, इसके बारे में मेरा अनुमान (अन्य लोगों के बीच एक प्रयोग मामला, इसके कई कारण हो सकते हैं "svn: E160024: पुराना हो चुका है; अद्यतन करने का प्रयास करें"): इसके साथ ही trunk, एक branchesनिर्देशिका थी। मैं एक खींच लिया branches/branch-1में masterGitHub से। कर svn updateमूल निर्देशिका से (है कि, मेरे काम कर प्रतिलिपि की जड़) के बजाय trunkकिया कुछ में है लगता है branchesके अलावा trunk। जब मैंने commitफिर से कोशिश की , तो कोई त्रुटि नहीं थी।

हालांकि, जैसा कि मैंने ऊपर कहा, यह शायद कई अन्य लोगों के बीच एक मामला है।

साइड नोट: किसी ने जो सुझाव दिया, उसके विपरीत, मुझे विश्वास नहीं है कि .svnनिर्देशिका में मैन्युअल रूप से खेलना एक अच्छा विचार है ।

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