SVN:
जब आप पहली बार जोड़ सकते हैं या सबवर्सन में कोई फ़ाइल आयात फ़ाइल अगर यह एक बाइनरी फ़ाइल है निर्धारित करने के लिए जांच की जाती है। वर्तमान में, सबवर्सन फ़ाइल के पहले 1024 बाइट्स को देखता है; यदि बाइट्स में से कोई भी शून्य है, या 15% से अधिक ASCII प्रिंटिंग वर्ण नहीं हैं, तो सबवर्जन फ़ाइल बाइनरी को कॉल करता है। हालांकि, भविष्य में इस ह्युरिस्टिक में सुधार किया जा सकता है।
http://subversion.apache.org/faq.html#binary-files
Git एक समान तरीके से काम करता है। गिट आमतौर पर अनुमान लगाता है कि क्या ब्लॉब में सामग्री की शुरुआत की जांच करके टेक्स्ट या बाइनरी डेटा होता है - यह पहले 8000 बाइट्स में शून्य बाइट (एनयूएल "कैरेक्टर") की किसी भी घटना के लिए जांच करता है।
http://git-scm.com/docs/gitattributes
और Git स्रोत से:
#define FIRST_FEW_BYTES 8000
int buffer_is_binary(const char *ptr, unsigned long size)
{
if (FIRST_FEW_BYTES < size)
size = FIRST_FEW_BYTES;
return !!memchr(ptr, 0, size);
}
http://git.kernel.org/?p=git/git.git;a=blob;f=xdiff-interface.c;h=0e2c169227ad29b5bf546c6c1b97e1a1d8ed7409;hb=HEAD
और @tonfa है कि "यह भी ध्यान रखें एक अच्छा बिंदु बनाता है कि केवल जगह है जहाँ यह एक फ़ाइल पाठ बनाम होने के बारे में परवाह है बाइनरी difplaying diffing के लिए है, और विलय करने के लिए। भंडारण प्रारूप इसके बारे में परवाह नहीं है। "
दोनों गिट और मर्कुरियल ओपन सोर्स हैं, आप कोड देख सकते हैं और पता लगा सकते हैं कि वे क्या करते हैं। –
http://mercurial.selenic.com/wiki/BinaryFiles – crowne
गिट भाग के लिए अत्यधिक स्थानीयकृत http://stackoverflow.com/questions/6855712/git-treats-text-file-as-a-binary के संभावित डुप्लिकेट (untagged) –