svn - नामित फ़ाइल, अब एसवीएन मुझे प्रतिबद्ध करने की अनुमति नहीं दे रहा है?




commit (7)

मैं Aptana का उपयोग कर एक कोल्डफ्यूजन वेबसाइट विकसित कर रहा हूँ। हम संस्करण नियंत्रण के लिए एसवीएन का उपयोग कर रहे हैं।

मैंने कुछ फाइलों का नाम बदल दिया और अब उनमें से एक को प्रतिबद्ध करने की कोशिश कर रहा हूं, लेकिन मुझे निम्न त्रुटि मिल रही है:

'SVN Commit' has encountered a problem.
org.apache.subversion.javahl.ClientException: Illegal target for the requested operation
svn: Commit failed (details follow):
svn: Cannot commit 'R:\myPath\My-New-File-Name.cfm' because it was moved from 'R:\myPath\My-Old-File-Name.cfm' which is not part of the commit; both sides of the move must be committed together

ऐसा लगता है कि मुझे पिछली फ़ाइल (जिसे नाम दिया गया था) और नई नामित फ़ाइल दोनों को एक साथ करने की आवश्यकता है। मैं एक फाइल कैसे कर सकता हूं जो अब मौजूद नहीं है ...?


TortiseSVN विंडोज एक्सप्लोरर में फ़ाइल खोलें। फ़ाइल का चयन करें, राइट क्लिक करें, TortiseSVN -> विचलन का उपयोग करें और सूची को अनदेखा करने के लिए जोड़ें

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

मैं इस मुद्दे को सुलझाने के समाधान का उपयोग करता हूं।


svn प्रतिबद्ध 'आर: \ myPath \ My-New-file-Name.cfm' 'आर: \ myPath \ My-Old-File-Name.cfm' -m "संदेश"

मेरे लिये कार्य करता है। आपको बस हटाए गए फ़ाइल को भी शामिल करने की आवश्यकता है।


एक मौका है कि फाइलों में से एक का नाम बदल दिया गया है।

त्रुटि में फ़ाइल नामों को देखें और देखें कि यह आपकी फ़ाइलों के साथ मेल खाता है या नहीं।

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


कई ग्राहक दूसरों से बेहतर इसे संभालने लगते हैं ..

विजुअल स्टूडियो के लिए AnkhSVN इस त्रुटि का सामना करता है और इससे निपट नहीं सकता है।

TortiseSVN (खोल एक्सटेंशन) हालांकि काम करता है - यह पुरानी फ़ाइल को हटाना और नया जोड़ना जानता है।

तो यदि आप विंडोज़ पर हैं तो इस पर काम करने का एक आसान तरीका निर्देशिका पर एक प्रतिबद्धता करने के लिए एक्सप्लोरर से TortiseSVN का उपयोग करना है (जो पुराने फ़ाइल नाम को हटा देता है और नया जोड़ता है)।


पुरानी नाम वाली फ़ाइल जोड़ें और प्रतिबद्ध करें, फिर फ़ाइल को फिर से हटाएं।


यदि आप IntelliJ IDEA का उपयोग कर रहे हैं और TortoiseSVN के साथ प्रतिबद्ध बनाते हैं, तो कभी-कभी ऐसा होता है कि आईडीईए और सबवर्जन द्वारा फ़ोल्डर को हटाया नहीं जाता है।

उस स्थिति में, इसका मतलब है "कृपया, हटाए गए फ़ोल्डर / फ़ाइल को न करें जिसे आपने हटाया है"


विजुअल स्टूडियो 2015 के लिए, मैंने अंख एसवीएन के लिए एक फिक्स पर फिसल गया। मेरे मामले में त्रुटि के दौरान "फॉर्म 1.cs" नाम बदलने से त्रुटि हुई (और शायद इसे आगे बढ़ाना)। इससे पुरानी और नई .resx फ़ाइलों के साथ समस्याएं आईं।

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

उम्मीद है इससे आपका काम बनेगा।





commit