Hello,
 
Subversion console client try to detect binary file with algorythm:
  1. File is NOT BINARY if it contains only BOM UTF-8 signature (why not check as first N bytes is corret UTF-8?);
  2. File is BINARY if first 1024 bytes contains ZERO byte (uniform distribution of bytes takes change of absent ZERO byte: (1 - 1 / 256) ^ 1024 = ~1.8%);
  3. File is BINARY if first 1024 bytes contains over 85% of characters not in range 0x07-0x0D, 0x20-0x7F (total we have 153 "binary" bytes, ~60%).
This algoritm looks like broken.
 
For example:
  1. File "text.txt":
    Is file contains text block from wikipedia about subversion in UTF-8 (https://ru.wikipedia.org/wiki/Subversion) and unfortunaly contains too many cyrillic charactes (on character - 2 "binary" bytes).
  2. File "binary.txt" detected as "text"
    It was created by "dd if=/dev/urandom of=binary.txt count=1 bs=2048" and unfortunaly does not contains ZERO byte in first 1024 bytes.
 
-- 
Best regards,
Navrotskiy Artem
 
6$ÓAQõ^¥ÝFBfÝex}:^ã`œìØÌ·$N;÷Þ³Sé}ç9Ú¨âÞÞýe/ùò¯¹[æk΋‘Y-žúœ"ÛQ)_+_±³™¼n.çØÃb¤ç-Ú³Ç`ƒ·Ž‡ËÙ=â
  æF™Ëœ$dÞÉâú 
CJcu¢ÝǕWîëw­¾Vö†ex.‰6Œ™RˆÙ'ÞôˆWµìqPŠ÷»‹ëÀï!¸à¯(™CÆ­±~ ÖŠ 
-Ø`iQi·X®™ê“+ǽú=Fƒ~,P¯ñ֏¢I`1Ù(gm¨ézq·Ùdɝç÷â$G3 
Ёp`º‚üFÍñ”,ޜ­*wä1Ó´/€-¤Ä%iè0q»cN9éù,28Q(ä́®u¯2RìȊEj‡‹ÝÝéVPä9ïûñýËÑØe¶˜„zw}1—IÞKÀìTwn‘ÈlíâBígÀ搩‚ë
tšc!Å\:\¼àImҋp#é;Ãx\ƒd¿ÂuŒº¤_愻ÜðâÀ 
gÓ¶žpõ¹ð‰[£0îZjFQ@‹jòY‚€éÔºÃFö;áXWúbÞMÍ¿ZÀän–ŒVi\gÍ˸(‹y…¹†—*.   LùÔ:h1
'T@YuUµèßdísUg©aêÁ    Á¯W²BPÚìÒä÷¸™2‰ì˜Ý³+½G¨šÇCXav_P 
ûîãâ(ŒÃ{Îïåûv2®S€ÝÇCLÚžñ‰Ëñfq/\?Ó+Q¬ý¼ÁÃmrÏä@6VÔQ?â7ëoË÷ÎçºWs†„ŸLxzE/
Èt¿F(6gðŠ„ƒ1ŸýéÄ+”$M“:ÒE%ô×hˆ¶ÌþÚL°_n55­IF¬ûŽÀXíAÛ­º
“—îl¢£ãs{j5ç׋­Ïj¬¥x©¿Pƒµ‚ü*æV4³¥¹÷ü"þCKù˜  ê(hFÔW£b˜/÷aÁ‰
•¥
ݧg–ÌBñ6¼ÜýgM—Dê©ñg@¯Z?zµÙiS|ù?G§
rž¿'ÇюZ„ebë«ÂuÌ䐆Ðí^øIs:zßß0TD¾ ¯Á†Ò{·\È—»¶
–14wºí)ÖN\=¹J€jR‹qíOA¦Å±pp©èW’S·Øeý»|£ôD۝¹]7oŠ{#–A£Öpf'«cx·NÈúd§ÌO´š·‚5Ú>ž×¤×>ngæcN9×ß­H‹½G´°®Ã(£ç»£=Z5Ø!²ÓL¾q”£ø£Güf³Ð¤'YüÇE÷¡ò‘†2øÎÂoB<ÆïFq:Ô¯ß=Öð@Ëû“ü
 ¬é_¸Տ DzúQþcU@4¶ò­ð§ Xé€/qo•ÍddGqèKXZeù@'¦Ë 
'ok&ÈEÏùÄݯæóOŠY¿|½š2Š„Ê.¯^®´‚*6ÁNv«­s¿¦(áHmˆ¾!nj¸oàbON˜ ¥¶N’“ˬ0 êj€
”¡•±3EɏLÊI]‚
2$8=îÁMá¡Ü{Óã,
ðWK,g‰^Õ÷Åù(À$;í=89
ËîÄìDZ$"
‘‚_JûÜ¥$¥ü‹©®µÆ±÷å9­K#"†°¯Ó3yJeêÝã@çöh/’¦‹µ%çoš³šjÊI‹n9S<ŽÑȬþ8ZuC&—1"ܶŒñ
 
òÒ†kÒH'_pUú)T_՟wï'Uٙ5nCÁBV˜îgO¿LèÚeÚ©S±>ÃÓ*u[z¸pØ/È2üûRžç÷)ÊråUÙü?^²~7ÇÒÆ
        Ž®ÅóDºwg‡ãŸåúVF½›sŒ¥Büü»ˆâê÷’r$Í3M¸wvzg 
ŒhÈYºm¸·©Ìaí[æ&¦H²šòBÐë,¬ÇGY  
KOt%O€/ŠŠ‘/õ¶ÆSŠæŸÐϼ$Yƒ‹êH¨¿?øô•ÀÛi]iëë(7ÎGNÀÄ䷈kHÀÊÿ½*kN}mÚÅT¢w)¼Èò[paúeœ&çå
…z0ö
g*Ût¤° eé¼ÿHd7ÃÂ@ÙUˆP¶ŽxÚÔc©Òà}…
cZAŸ$ŽQ”Ð{5hÞ¥Þ¿hµõàí‘ÛI¬Ýº”yrv($fLþDü§ŽÌ"öå<Æs¹,ŸàÄÿ‡mH‘Iââa£Ô°¦v»uð‰’x]\ÜQ§ÍØVEñàPÕþT{E·þ•¸^UÛ<#Âù÷f»'b*3Ïßê|J
 
]sAlE$sԙ­æiFñ÷b¡†ùÔ)_üô›.ÎkO/èØ1JÉ+(\Pœå´r;'ËΤ»&òÔdKQßH!aPÉES°´ýüMÊA»¼;mEâÃ1’tð­le
 
/wúRëqÔMŽ.”`ŸRøþäúƒ¡ï6#B‘ߤt&œSáümÚæg<ÓÑ[š£ÿÍ]Àxn³£Xfzêï=Hp'sw$-$g@üš‡}þÙ8˖eu·#wâ‰OãÞ
 ¯IŒÔltA‚
´ÈÒߜm>
Årח[.:ÌË<`7ñAó†÷p@¸ºðRvÇ?á:
lí[œïk1IÀ.§Bä/:÷rdDÔ¢3U¿æJJãàè¥v~ö¯ÑŠ
Разработка Subversion была начата в 2000 году по 
инициативе и при финансовой поддержке 
CollabNet. Инициаторы проекта хотели создать 
свободную систему управления версиями, в 
основном похожую на CVS, но лишённую её 
ошибок и неудобств. В то время не 
существовало лучших программ этого класса 
со свободной лицензией, CVS была стандартом 
де-факто среди разработчиков свободного 
программного обеспечения. Выбрав её за 
основу, разработчики Subversion надеялись 
упростить разработку за счёт 
использования уже проверенных концепций и 
в то же время облегчить переход на новую 
систему многочисленным пользователям CVS.[15]

Reply via email to