2013-10-03 4 views
8

मेरा प्रश्न यह है: मर्कुरियल को "स्थिति" या 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 

फिर कार्यशील निर्देशिका को साफ़ करें (वापस करें - कुछ निष्क्रिय फ़ाइलों को उत्पन्न करें। कुछ फ़ाइल तिथियों को भी रीसेट करें (मैं इस भंडार का उपयोग करने वाला एकमात्र व्यक्ति हूं और फ़ाइल तिथियां मेरे लिए उपयोगी हैं। हाँ फ़ाइल तिथियों को पुनर्स्थापित करने के लिए एक एचजी एक्सटेंशन है लेकिन मैंने इसे अभी तक इंस्टॉल नहीं किया है)।

इस प्रक्रिया ने मुझे फिर से रेखांकित किया।

+0

BC3 में तय: यह करने के लिए अगले जब मैं

hg st 

उसके बाद भाग गया मैं फ़ाइलें (जो पहले से ही में जाँच कर रहे थे) वापस लौटने के लिए निम्न आदेश भागा सत्र-> सत्र सेटिंग्स के तहत, तुलना टैब पर यह "बाइनरी तुलना" या "नियम आधारित" पर सेट है। आप किस प्रकार की फाइलों की तुलना कर रहे हैं? – Edward

+0

तुलना "नियम आधारित" पर सेट है। फ़ाइल एक सी ++ स्रोत फ़ाइल है। "द्विआधारी समान" का बीसी 3 परिणाम वास्तव में सही है। अब मैं "अनुमति" संभावना को देखने जा रहा हूं क्योंकि @barjak सुझाव देता है। (पहला निरीक्षण दिखता है जैसे अनुमतियां नहीं बदली हैं लेकिन मैं थोड़ा आगे खोदूँगा ...) –

+0

मेरे लिए ऐसा होता है अगर मुझे माइक्रोसॉफ्ट की विंडोज़ का उपयोग करना है। अगर मैं इसे प्रतिबद्ध करने के लिए उपयोग करता हूं, तो अगर मैं कभी भी इस संशोधन में अपडेट करता हूं, तो फाइलें हमें दिखाती हैं। (शायद एमएस विंडोज रेपो को कुछ सहेज रहा है, जो यूनिक्स द्वारा प्रदर्शित नहीं किया जा सकता है या नहीं)। –

उत्तर

10

यूनिक्स अनुमतियों को भी बदलते समय एक फ़ाइल को संशोधित के रूप में चिह्नित किया जा सकता है। अनुमतियों की जांच के लिए hg diff -g आज़माएं।

+2

मुझे अभी भी इस समस्या का मूल कारण पता नहीं है (अगर किसी के पास कोई अतिरिक्त विचार है, तो मुझे अभी भी दिलचस्पी है), लेकिन इस जवाब ने मुझे एक उपयोगी दिशा में इंगित किया। –

+0

एक ही समस्या थी और -g विकल्प का उपयोग करके मुझे दिखाया गया कि फ़ाइल के लिए अनुमतियां जहां बदल गईं। – Alex

2

बस एक वापसी करने से मेरी मदद नहीं हुई।फाइलें संशोधित स्थिति में रहेंगी, भले ही मैंने उन्हें किया था। अगर मैंने इसे फिर से करने की कोशिश की। तो मैंने बस उन फ़ाइलों को हटा दिया जो संशोधित के रूप में दिखाए गए (यदि आवश्यक हो तो बैकअप लें) जिससे सभी फाइलें दिखाई दे रही हैं! ,

hg revert --all --no-backup 

और है कि समस्या

संबंधित मुद्दे