2009-03-25 10 views
14

मेरे पास एक रिपोजिटरी है जिसमें विंडोज़ (सीपी 1252) और लिनक्स (यूटीएफ 8) कमिटर्स हैं। स्पष्ट रूप से गिट भ्रमित हो जाता है, और अमान्य (लिनक्स के परिप्रेक्ष्य से) फ़ाइल नाम डालता है। मुझे पता है कि मैं एक तरफ फाइलों का नाम बदलने के लिए हुक का उपयोग कर सकता हूं (लिनक्स की तरफ, उदाहरण के लिए, सीपी 1252 से यूटीएफ 8 तक फ़ाइलों का नाम बदलकर जब वे आते हैं और विपरीत होते हैं), लेकिन ... मैं यह कैसे कर सकता हूं? वास्तव में मुझे कौन सा हुक लिखना है?गिट - मिश्रित एन्कोडिंग फ़ाइल नामों से निपटने

+1

क्या फ़ाइलों को एक बार परिवर्तित करना और विंडोज़ पर यूटीएफ -8 का उपयोग करना आसान नहीं होगा? – TimWolla

उत्तर

7

अच्छा सवाल!

http://www.serverwatch.com/tutorials/article.php/3705216 "convmv" नामक टूल के बारे में बात करता है जो फ़ाइल नामों को ठीक करेगा। यह सहायक हो सकता है।

Iconv http://www.gnu.org/software/libiconv/ मनमाना पाठ को विभिन्न चरित्र सेटों में परिवर्तित कर सकता है।

http://ozmm.org/posts/git_post_commit_for_profit.html आपको पोस्ट-प्रतिबद्ध हुक बनाने के बारे में बताता है, हालांकि रूबी-विशिष्ट हालांकि। ऐसा लगता है कि आप बस .git/hooks/post-commit में निष्पादित करने के लिए एक स्क्रिप्ट जोड़ते हैं, और गिट आपके द्वारा किए जाने के बाद इसे चलाएगा। यह एक ऐसी स्क्रिप्ट हो सकती है जो आपके गिट रेपो में एक स्क्रिप्ट भी चलाती है।

स्क्रिप्ट के लिए, मैं सिर्फ खोज के साथ स्कैनिंग की सिफारिश करता हूं, फ़ाइल नाम को यूटीएफ -8 में परिवर्तित करता हूं, देखें कि यह पहले से ही नाम है, और यदि नहीं, तो इसे स्थानांतरित करें।

+0

लेकिन सही हुक पोस्ट करने के बाद है? मैं सोच रहा था कि मुझे अन्य रिपोजिटरी में फ़ाइलों को कम करने या तुलना करने से पहले सीई 1252 से सीपी 1252 पर वापस प्राप्त करने के बाद cp1252 से utf8 में कनवर्ट करना था (लिनक्स पर) क्योंकि लिनक्स मशीन नेटवर्क में अल्पसंख्यक हैं - और convmv आसानी से इंस्टॉल करने योग्य है * बंटू) ... – Massa

+1

'प्री-प्रतिबद्ध' आशाजनक लग रहा है। देखें: http://git-scm.com/book/en/ कस्टमाइजिंग- गिट- गिट- हुक – tessi

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