मेरे पास एक गिट रिपॉजिटरी में कुछ फाइलें हैं जो यूनिकोड टैब-अलग मूल्य की फाइलें हैं। मुझे पता है कि ये फाइलें या तो UTF-8 या UTF-16 पीढ़ी-समय पर एन्कोडेड हैं।
अपने विंडोज वर्कस्टेशन के लिए, जहां मैं कभी-कभी उन्हें एक्सेल में संपादित करना चाहता हूं (पूछें नहीं), मैं उन्हें यूटीएफ -16 के लिए स्मूद करना चाहता हूं, चाहे वे यूटीएफ -8 या यूटीएफ -16 के रूप में पहुंचें।
लेकिन दूसरी दिशा में, मैं हमेशा रिपॉजिटरी में आंतरिक प्रतिनिधित्व में UTF-8 रखना चाहता हूं। (मैं भी अलग-अलग अर्थपूर्ण होना चाहता हूं, इसलिए "कुछ भी यूटीएफ -8 के लिए" वही लागू होता है diff
विशेषता।)
वर्तमान में, मेरी .gitattributes
परिभाषित करता है
*.tsv diff=winutf16 filter=winutf16
जिसका मतलब है ( .git/config
)
[filter "winutf16"]
clean = iconv -f utf-16 -t utf-8
smudge = iconv -f utf-8 -t utf-16
required
[diff "winutf16"]
textconv = iconv -f utf-16 -t utf-8
यह देखते हुए कि मुझे पता है कि यह इन दो यूनिकोड एन्कोडिंग विकल्पों में से केवल एक है, मुझे कुछ का उपयोग करके एन्कोडिंग प्राप्त करने में सक्षम होना चाहिए -f $(file -b --mime-encoding file.tsv)
, लेकिन इससे मुझे एक फ़ाइल नाम निर्दिष्ट करने की आवश्यकता होगी, जबकि डॉक्स स्थिति
चेकआउट करने पर, जब स्मूद कमांड निर्दिष्ट किया जाता है, तो कमांड को उसके मानक इनपुट से बूँद ऑब्जेक्ट खिलाया जाता है, और इसका मानक आउटपुट का उपयोग वर्कट्री फ़ाइल को अपडेट करने के लिए किया जाता है। इसी तरह, क्लीन कमांड का उपयोग चेकइन पर वर्कट्री फाइल की सामग्री को परिवर्तित करने के लिए किया जाता है।
तो मुझे जो भी मिलता है वह एक बार स्टड करने के लिए एक बूँद है।
क्या विंडोज पर ऐसा करने का एक साफ तरीका है, जो पहले से निहित है उससे परे चीजों को स्थापित किए बिना?