मुझे कुछ व्यवहार का सामना करना पड़ा है जिसे मैंने सबवर्जन से अपेक्षा नहीं की थी, और इसे लगभग गलती से खोजा: एक संशोधित फ़ाइल को संशोधित के रूप में फ़्लैग नहीं किया जा रहा है।सबवर्जन एक संशोधित माइक्रोसॉफ्ट एक्सेल स्प्रेडशीट फ़ाइल को ध्वजांकित करने में विफल क्यों होता है?
मेरे पास एक यूनिट परीक्षण है जिसमें एक Microsoft फ़ाइल स्प्रेडशीट इनपुट फ़ाइल के रूप में शामिल है। यूनिट टेस्ट एक सीआरसी चेकसम की गणना करता है; चेकसम बदलने के कारण मेरा परीक्षण विफल हो गया।
परीक्षण फ़ाइल एसवीएन में संग्रहीत है, और इसमें एमआईएमई प्रकार "एप्लिकेशन/ऑक्टेट-स्ट्रीम" है, और इसलिए एसवीएन द्वारा बाइनरी के रूप में माना जाता है।
मुझे एसटीएन 1.6 पर आधारित इस मामले में TortoiseSVN और SVN कमांड लाइन क्लाइंट से वही व्यवहार मिलता है: जब Excel में फ़ाइल खोली जाती है, तो तथ्य यह है कि यह खुला है फ़ाइल में ही एन्कोड किया जाना चाहिए; एसवीएन दिखाता है कि फ़ाइल संशोधित है। हालांकि, जब फ़ाइल दोबारा बंद हो जाती है (सहेजे बिना), ऐसा लगता है कि यह अपने असम्बद्ध स्थिति में वापस आ रहा है: यानी svn status
एक्सेल फ़ाइल सूचीबद्ध नहीं करता है; svn diff
बाइनरी होने के कारण किसी भी आउटपुट का उत्पादन नहीं करता है।
पकड़ यह है कि फ़ाइल अब भंडार में संग्रहीत फ़ाइल के साथ द्विआधारी तुलना नहीं करती है। (यदि एक ताजा प्रति निर्यात किया जाता है, तो यह खुली और बंद प्रतिलिपि के साथ बाइनरी की तुलना नहीं करता है।) फ़ाइल स्पष्ट रूप से उपयोगकर्ता के दृष्टिकोण से अपरिवर्तित है, इसलिए अर्थपूर्ण अर्थ में, एसवीएन प्रतिक्रिया उचित है। लेकिन वाक्य रचनात्मक रूप से नहीं; और एसवीएन अनिवार्य रूप से वाक्य रचनात्मक है।
वह हिस्सा जिसके लिए मुझे कोई कारण नहीं मिल रहा है, क्यों एसवीएन फ़ाइल को संशोधित नहीं करता है। मैं कल्पना नहीं कर सकता कि एसवीएन के पास Excel फ़ाइलों के लिए कोई विशेष हैंडलिंग है (और किसी भी मामले में एमआईएमई प्रकार विशेष रूप से एमएस एक्सेल से जुड़ा नहीं है); परिभाषित कोई एसएनवी कीवर्ड संपत्ति नहीं है। इसी प्रकार, मैं कल्पना कर सकता हूं कि एक्सेल छिपी हुई एसएसएन उपनिर्देशिका की सामग्री के बारे में कुछ भी जानता है जिसमें एसवीएन कामकाजी प्रतिलिपि जानकारी संग्रहीत की जाती है।
क्या आपके पास कोई संकेत है कि यहां क्या हो रहा है?
धन्यवाद, रॉब।
धन्यवाद। हां समस्या पुनरुत्पादित है। यह एक संभावित स्पष्टीकरण की तरह लगता है; मैं विम के जवाब पर अपनी टिप्पणी में यह बहुत कुछ कहूंगा, लेकिन यह स्वतंत्र रूप से मनाया जाना अच्छा है। मैं यह (काम पर, कल) की जांच करूंगा। – Rhubbarb
बस पुष्टि करने के लिए: यह ठीक है कि क्या हो रहा है। जब एक्सेल फ़ाइल खोला जाता है, तो फ़ाइल की सामग्री बदल जाती है (जैसा कि md5sum के साथ देखा जा सकता है) और संशोधित समय में परिवर्तन। जब फ़ाइल को सहेजे बिना बंद कर दिया जाता है, तो फ़ाइल सामग्री बदलती नहीं है, लेकिन इसके मूल स्थिति में वापस नहीं आती है; और संशोधित समय खोलने से पहले मूल्य पर वापस आ जाता है। – Rhubbarb
बस यह पाया: http://spreadsheetpage.com/index.php/oddity/who_last_opened_that_file/ ऐसा लगता है कि एक्सेल सलामी बल्लेबाज (और शायद अधिक) का नाम सहेजता है, भले ही आप सहेज न जाएं। अजीब। – Martin