2012-05-16 17 views
13

संपादित करें: गिट चरित्र एन्कोडिंग के साथ गड़बड़ नहीं करता है। यह अभी भी ज्ञान को साझा करने और अन्य गलतियों को करने से बचने के लिए यहां है।चरित्र एन्कोडिंग के साथ गड़बड़ करने का कारण क्या हो सकता है?


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

मैंने क्या किया: पिछले 3 दिनों के दौरान, मैं एक नई सुविधा पर काम कर रहा था, और मैंने कई स्थानीय काम किए। आखिर में मैंने इन सभी को एक इंटरैक्टिव रीबेस का उपयोग करके एक ही में बदल दिया, फिर मैंने एक ही प्रतिबद्धता में svn भंडार पर सब कुछ धक्का देने के लिए गिट svn dcommit का उपयोग किया।

तब क्या हुआ: एक कॉलेग्यू ने मुझे बताया कि सभी उच्चारण उन फ़ाइलों में गड़बड़ हो गए थे जिन्हें मैंने संशोधित किया था, और मेरी प्रतिबद्धता के बाद नई फाइलों में। मैंने पहले ही गिट + एसवीएन की स्थापना के साथ उसी भंडार में उच्चारण के साथ टेक्स्ट फाइलें पहले ही कर दी थीं, और पहली बार मुझे इस मुद्दे का सामना करना पड़ा।

मेरे जांच: मैंने किया था निम्नलिखित बातें की जांच के लिए: नोटपैड के साथ ++ फ़ाइलों को खोला, और उन्हें देखने के लिए (विंडोज़ डिफ़ॉल्ट और UTF-8 सहित) सबसे वर्तमान एन्कोडिंग की कोशिश की: उनमें से कोई भी ठीक से लहजे प्रदर्शित कर सकता है, और विभिन्न उच्चारण हमेशा अजीब ग्लिफ के समान अनुक्रम द्वारा प्रस्तुत किए जाते हैं।

अस्थायी वर्कअराउंड: मैंने तुरंत गिट एक्सटेंशन के साथ एक रिवर्ट प्रतिबद्ध बनाया और इसे "डिक्यूटेड" किया।

सवाल: मेरी उद्यम SVN भंडार ठीक है, लेकिन अब मैं हल करने के लिए दो निम्नलिखित समस्या है:

  1. समझे लहजे के साथ पात्रों के साथ क्या हुआ
  2. SVN से मेरे काम को पुनः प्राप्त इतिहास और इसे उचित तरीके से प्रतिबद्ध करें (यदि संभवतः उच्चारण के साथ सभी पात्रों की समीक्षा किए बिना संभव है)

क्या कोई कुछ संकेत प्रदान कर सकता है (मैं गिट के लिए नया हूं)?

+1

तुम्हारा मतलब है कि आपके पाठ फ़ाइलें सामग्री बदल गया था, रास्तों मत करो;

+1 "Git reflog"

खुश लहजे तय करने के लिए? (मैं पूछता हूं क्योंकि जैसा कि मुझे पता है कि गिट-एसवीएन बाइट सरणी जैसी फाइलों के साथ काम करता है)। आप गिट-एसवीएन का किस संस्करण का उपयोग करते हैं? –

+0

हाँ, यह उन फ़ाइलों की सामग्री है जो ऑपरेशन के दौरान बदल दिए गए थे, पथ नहीं। जैसे ही कोई नया संस्करण आता है, मैं अपडेट कर रहा हूं, लेकिन मैं अभी काम पर नहीं हूं। जैसे ही मैं –

+0

कर सकता हूं, मैं आपको गिट और गीट एक्सटेंशन की सटीक संस्करण संख्या बताऊंगा जब गिट-एसवीएन डॉकिट्स रिपोजिटरी में बदलता है तो निम्न कार्य करता है: –

उत्तर

15

और अब हम दर्दनाक सत्य (मेरे अहंकार के लिए दर्दनाक, गिट उपयोगकर्ताओं के लिए नहीं) प्रकट करते हैं: मैंने गेट्स के साथ गड़बड़ी की, गिट नहीं किया।

मैं सिर्फ सवाल जो चलो गलत तरीके से उच्चारण के साथ ऊपर लगता है कि गंदगी Git कर सकते हैं हटा दिया है सकते हैं, लेकिन upvotes की संख्या को देखते हुए मुझे लगता है कि तुलना में बहुत से लोगों को वही गलती है कि मैंने किया है, इसलिए मैं सच्चाई स्थापित करने के लिए अपने स्वयं के प्रश्न का उत्तर देने के लिए चुना गया है, और शायद उसी मामले में लोगों की सहायता करें:

  1. गिट लाइन ब्रेक के अलावा अन्य पात्रों को स्पर्श नहीं करता है।
  2. मैंने को से पहले उच्चारण तोड़ दिया, और मैंने इसे नहीं देखा क्योंकि मैंने पर्याप्त ध्यान नहीं दिया था। ऐसा करने के लिए, मैंने ग्रहण के साथ कुछ फाइलों को संपादित किया।ग्रहण ने एन्कोडिंग को पहचाना नहीं था और उच्चारण को सहेजने पर एक अजीब बाइट अनुक्रम द्वारा प्रतिस्थापित किया गया था। बस इतना ही।

इस समस्या की जांच करने के तरीके पर मुझे संकेत देने के लिए फिर से Dmitry Pavlenko पर धन्यवाद। =)

+0

दुर्भाग्यवश, ग्रहण लिनक्स पर एन्कॉन्डिंग के लिए अलग-अलग डिफ़ॉल्ट का उपयोग करता है और विंडोज़। उस अकेले मुझे किसी और चीज से ज्यादा परेशानी हुई। –