Как бороться с mime property в svn


ramok аватар

ramok - Posted on 19 Август 2007

SVN при добавлении файла в репозиторий автоматически определяет бинарный это файл или нет. В зависимости от этого SVN будет вести себя с файлом по разному
(в частности не будет выводить diff для таких файлов).

Но бывает так что файл является текстовым, но править его как текст вы вряд ли будете.
Например ps, eps, xpm. И правке таких файлов получаются мегабайтные diff между commit, в которых трудно ориентироваться.

Для исправления этого недоразумения для файлов которые уже в репозитории можно указать напрямую MIME этого файла. Все что будет отличатся от text/* не будет интерпретироваться как текст. Например в директории img дадим всем .eps файлам правильный MIME и закомитим изменения.

$ svn propset svn:mime-type application/postscript img/*.eps
$ svn commit -m "fix mime for .eps"

Какие mime какому типу файла соответствуют можно подсмотреть в /etc/mailcap. и man mime незабудьте
прочесть Ж:-)

В долгосрочной перспективе рекомендую добавить в ~/.subversion/config этот текст
что бы все нужные propertis устанавливались автоматически.

[miscellany]
enable-auto-props = yes
 
[auto-props]
# Scriptish formats
*.bat        = svn:eol-style=native; svn:keywords=Id; svn-mine-type=text/plain
*.bsh        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/x-beanshell
*.cgi        = svn:eol-style=native; svn:keywords=Id; svn-mine-type=text/plain
*.cmd        = svn:eol-style=native; svn:keywords=Id; svn-mine-type=text/plain
*.js         = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/javascript
*.php        = svn:eol-style=native; svn:keywords=Id Rev Date; svn:mime-type=text/x-php
*.pl         = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/x-perl; svn:executable
*.pm         = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/x-perl
*.py         = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/x-python; svn:executable
*.sh         = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/x-sh; svn:executable
 
# Image formats
*.bmp        = svn:mime-type=image/bmp
*.gif        = svn:mime-type=image/gif
*.ico        = svn:mime-type=image/ico
*.jpeg       = svn:mime-type=image/jpeg
*.jpg        = svn:mime-type=image/jpeg
*.png        = svn:mime-type=image/png
*.tif        = svn:mime-type=image/tiff
*.tiff       = svn:mime-type=image/tiff
*.xmp        = svn:mime-type=image/x-xpixmap
 
# Data formats
*.pdf        = svn:mime-type=application/pdf
*.avi        = svn:mime-type=video/avi
*.doc        = svn:mime-type=application/msword
*.eps        = svn:mime-type=application/postscript
*.gz         = svn:mime-type=application/gzip
*.mov        = svn:mime-type=video/quicktime
*.mp3        = svn:mime-type=audio/mpeg
*.ppt        = svn:mime-type=application/vnd.ms-powerpoint
*.ps         = svn:mime-type=application/postscript
*.psd        = svn:mime-type=application/photoshop
*.rdf        = svn:eol-style=native; svn:keywords=Id
*.rss        = svn:eol-style=native; svn:keywords=Id
*.rtf        = svn:mime-type=text/rtf
*.swf        = svn:mime-type=application/x-shockwave-flash
*.tgz        = svn:mime-type=application/gzip
*.wav        = svn:mime-type=audio/wav
*.xls        = svn:mime-type=application/vnd.ms-excel
*.zip        = svn:mime-type=application/zip
 
# Text formats
.htaccess    = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
*.css        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/css
*.dtd        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/xml
*.html       = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/html
*.ini        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
*.sql        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/x-sql
*.txt        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
*.xhtml      = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/xhtml+xml
*.xml        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/xml
*.xsd        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/xml
*.xsl        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/xml
*.xslt       = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/xml
*.xul        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/xul
*.yml        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
CHANGES      = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
COPYING      = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
INSTALL      = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
Makefile*    = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
README       = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
TODO         = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
 
# Code formats
*.c          = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
*.cpp        = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
*.h          = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain
*.java       = svn:eol-style=native; svn:keywords=Id; svn:mime-type=text/plain

PS
идея взята отсюда

0
Ваша оценка: Ничего

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.