2010-08-26 3 views
7

Pour des informations sur ma question: svn ne diff un fichier, il pense est binaireRenvoi permanent du mime de svn au mappage binaire?

$ svn diff data/assets/site/ir_gallery/images.kml 
Index: data/assets/site/ir_gallery/images.kml 
=================================================================== 
Cannot display: file marked as a binary type. 
svn:mime-type = application/vnd.google-earth.kml+xml 

Une réponse récente de débordement de pile (svn diff: file marked as binary type) a montré que vous pouvez forcer un type MIME:

$ svn propset svn:mime-type 'text/plain' data/assets/site/ir_gallery/images.kml 
property 'svn:mime-type' set on 'data/assets/site/ir_gallery/images.kml' 

Remarque cette réponse est incomplète avant ... vous devez aussi:

$ svn commit 

Maintenant, ma nouvelle question est: puis-je définir une valeur par défaut, donc tous les futurs fichiers "vnd.google-earth.kml + xml" sont traités comme du texte par svn? Le Redbook apparaît silencieux sur ce sujet: http://svnbook.red-bean.com/en/1.2/svn.advanced.props.html disant seulement:

...if a file's svn:mime-type property is set to a non-text MIME type 
(generally, something that doesn't begin with text/, though there are 
exceptions) then... 

Quelles exceptions? Ces exceptions sont-elles cuites dans le code svn, ou accessibles?

Répondre

5

La réponse dépend du client svn que vous utilisez. Dans le client svn officiel, l'option que vous recherchez est Automatic Property Setting. La version tl; dr est que vous devez mettre à jour votre user or system config, définissez le paramètre enable-auto-props sur yes dans la section miscellany et créez une nouvelle section appelée auto-props qui définit les modèles que vous souhaitez associer et les propriétés que vous souhaitez définir.

Pour votre exemple de fichiers kml:

### Section for configuring miscelleneous Subversion options. 
[miscellany] 
enable-auto-props = yes 

[auto-props] 
*.kml = svn:mime-type=text/plain;svn:eol-style=native 

Cela garantira que lorsque vous ajoutez un fichier .kml à votre dépôt, il aura un mime-type de texte/simple et utilisera natifs fins de ligne à la plate-forme du client.

+1

il peut préférer '* .xml = svn: mime-type = text/xml' car kml est un xml IIRC – akostadinov

+1

Soit dit en passant, le svn: mime-type = text/...; partie est critique, car si elle n'est pas là, il y a un ensemble de propriétés initiales qui le définit en non-texte, application/xml, ce qui causerait l'erreur svn: eol-style = native, empêchant l'ensemble étape d'ajout de fichier Le mime-type = text/... remplace la nature binaire du fichier en premier, de sorte que le natif eol-style peut être défini. – macetw