मेरा प्रश्न यह है: मर्कुरियल को "स्थिति" या TortoiseHgWorkbench के माध्यम से फ़ाइलों को अपरिवर्तित होने पर "संशोधित" के रूप में इंगित करने के कारण क्या हो सकता है?एचजी फाइलों को संशोधित करता है जो अपरिवर्तित हैं, ऐसा क्यों हो सकता है?
यहां स्थिति है: मेरे पास एक लिनक्स मशीन के लिए एक भंडार स्थानीय है। मैं केवल लिनक्स मशीन पर भंडार के साथ काम करता हूं। हालांकि, मेरे पास विंडोज मशीन पर रिपोजिटरी (और काम करने वाली फ़ाइल) की एक सटीक प्रति है (मैं BeyondCompare का उपयोग करके फ्लैश ड्राइव के माध्यम से सिंक्रनाइज़ करता हूं)। मेरी सबसे अच्छी याद दिलाने के लिए, मैंने कभी भी विंडोज मशीन पर मर्क्यूरियल का आह्वान नहीं किया, हालांकि यह वहां स्थापित है।
मैं हाल ही में लिनक्स मशीन पर एक प्रतिबद्धता करना चाहता था, और कई फाइलें जिन्हें मैंने दिखाने की उम्मीद नहीं की थी उन्हें "संशोधित" के रूप में सूचीबद्ध किया गया था। मैंने एक दृश्य diff (BeyondCompare का उपयोग करके) किया जो इंगित करता है कि कार्यशील निर्देशिका प्रतिलिपि में माता-पिता को "बाइनरी समान" है। TortoiseHgWorkbench फ़ाइल "संशोधित" दिखाती है, और अंतर खिड़की हरे रंग में पूरी फ़ाइल दिखाती है, (जैसे कि भंडार में एक खाली फ़ाइल थी, मुझे लगता है)। प्रश्न में फ़ाइल पर, फाइल सिस्टम पर फ़ाइल की तारीख महीने पुरानी है, जबकि मेरी आखिरी प्रतिबद्धता (मैं सभी बदली गई फाइलें करता हूं) कुछ हफ्ते पहले थी। कुछ अपरिवर्तित फ़ाइलें "संशोधित" के रूप में दिखाई देती हैं, लेकिन कुछ नहीं करते हैं। मैंने पहले कभी इस व्यवहार को नहीं देखा है, इसलिए मैं थोड़ा उलझन में हूं।
मैं भंडार पर "एचजी सत्यापित" चला गया और इसमें कुछ भी दिलचस्प नहीं था।
मुझे लगता है कि यह एक बड़ा सौदा नहीं है क्योंकि कामकाजी निर्देशिका में सभी फाइलें बरकरार हैं, और यदि मैं फ़ाइलों को प्रतिबद्ध करता हूं (भले ही वे अपरिवर्तित हों), मुझे यकीन नहीं है कि कुछ भी चोट पहुंचाएगा। लेकिन मैं समझने के लिए उत्सुक हूं कि क्या हुआ है।
किसी भी विचार के लिए अग्रिम धन्यवाद, जो देखना है।
[संपादित करें]
फिर भी एक मूल कारण (फाइल अनुमति और अपरिवर्तित पहुँच दिनांकों), लेकिन @ barjak की प्रतिक्रिया दिशा जहां मैं इस पाया में मुझे बताया नहीं मिला है: Why does "hg status" show changed files when "hg diff -g" doesn't? (One parent)। मेरी स्थिति वही है जैसा वर्णन किया गया है (दोनों एचजी diff और hg diff - केवल उन फ़ाइलों को दिखाएं जो वास्तव में बदल गए हैं, जबकि एचजी स्थिति कुछ अपरिवर्तित फ़ाइलों को दिखाती है)। बीटीडब्ल्यू मैं एचजी 2.6 का उपयोग कर रहा हूँ।
[संपादित करें]
यदि यह किसी के लिए उपयोगी है, यहाँ है कि कैसे मैं वापस एक सामान्य भंडार को मिला:
एक खोल में:
cd src
hg diff --git > ../junk
grep "\-\-git" ../junk
tortoiseHgWorkbench
uncheck all files marked "M"
check all files indicated in the grep results above (i.e., have real diffs)
commit
में
एक खोल में:
hg revert --all
फिर कार्यशील निर्देशिका को साफ़ करें (वापस करें - कुछ निष्क्रिय फ़ाइलों को उत्पन्न करें। कुछ फ़ाइल तिथियों को भी रीसेट करें (मैं इस भंडार का उपयोग करने वाला एकमात्र व्यक्ति हूं और फ़ाइल तिथियां मेरे लिए उपयोगी हैं। हाँ फ़ाइल तिथियों को पुनर्स्थापित करने के लिए एक एचजी एक्सटेंशन है लेकिन मैंने इसे अभी तक इंस्टॉल नहीं किया है)।
इस प्रक्रिया ने मुझे फिर से रेखांकित किया।
BC3 में तय: यह करने के लिए अगले जब मैं
उसके बाद भाग गया मैं फ़ाइलें (जो पहले से ही में जाँच कर रहे थे) वापस लौटने के लिए निम्न आदेश भागा सत्र-> सत्र सेटिंग्स के तहत, तुलना टैब पर यह "बाइनरी तुलना" या "नियम आधारित" पर सेट है। आप किस प्रकार की फाइलों की तुलना कर रहे हैं? – Edward
तुलना "नियम आधारित" पर सेट है। फ़ाइल एक सी ++ स्रोत फ़ाइल है। "द्विआधारी समान" का बीसी 3 परिणाम वास्तव में सही है। अब मैं "अनुमति" संभावना को देखने जा रहा हूं क्योंकि @barjak सुझाव देता है। (पहला निरीक्षण दिखता है जैसे अनुमतियां नहीं बदली हैं लेकिन मैं थोड़ा आगे खोदूँगा ...) –
मेरे लिए ऐसा होता है अगर मुझे माइक्रोसॉफ्ट की विंडोज़ का उपयोग करना है। अगर मैं इसे प्रतिबद्ध करने के लिए उपयोग करता हूं, तो अगर मैं कभी भी इस संशोधन में अपडेट करता हूं, तो फाइलें हमें दिखाती हैं। (शायद एमएस विंडोज रेपो को कुछ सहेज रहा है, जो यूनिक्स द्वारा प्रदर्शित नहीं किया जा सकता है या नहीं)। –