Difference between revisions of "Mime-types"

From BRL-CAD
(intentionally don't use application/xml because it can cause versions of svn revision control to treat the file as binary)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
[[category:Design Documents]]
 
When a developer commits a new file to the repository, they may get an error about mime types not being set.  This is because there is (intentionally) a commit hook set up that verifies that there are mime types set on all files being added to the repository.
 
When a developer commits a new file to the repository, they may get an error about mime types not being set.  This is because there is (intentionally) a commit hook set up that verifies that there are mime types set on all files being added to the repository.
  
Line 5: Line 6:
 
Sean provides a copy of his Subversion configuration that includes property settings for many file types.  You can download and install it with this:
 
Sean provides a copy of his Subversion configuration that includes property settings for many file types.  You can download and install it with this:
  
  '''curl http://brlcad.org/~sean/subversion.config > ~/.subversion/config'''
+
  '''curl https://brlcad.org/~sean/subversion.config > ~/.subversion/config'''
  
 
Once installed, run ''svn revert'' on your new file and then add it again.  The properties should be set if the config file is installed properly and it's a recognized file type.
 
Once installed, run ''svn revert'' on your new file and then add it again.  The properties should be set if the config file is installed properly and it's a recognized file type.
Line 46: Line 47:
 
  [sean@bz (Wed May 28 13:31:55) brlcad]$ svn commit some_new_file.c
 
  [sean@bz (Wed May 28 13:31:55) brlcad]$ svn commit some_new_file.c
 
  ... no mime type error ...
 
  ... no mime type error ...
 +
 +
That said, if one wanted to manually add or change a file's properties:
 +
[sean@bz (Wed May 29 13:50:51) brlcad]$ svn add some_file.odd
 +
A        some_file.odd
 +
[sean@bz (Wed May 29 13:51:32) brlcad]$ svn propset svn:mime-type text/plain some_file.odd
 +
[sean@bz (Wed May 29 13:52:16) brlcad]$ svn propset svn:eol-style native some_file.odd

Latest revision as of 09:46, 27 March 2020

When a developer commits a new file to the repository, they may get an error about mime types not being set. This is because there is (intentionally) a commit hook set up that verifies that there are mime types set on all files being added to the repository.

Subversion uses file mime-types for lots of useful things like for web interface browsing of the repository. You can either set up your subversion config to auto-set mime types or you can directly set the mime type on the file before you commit the file using svn propset.

Sean provides a copy of his Subversion configuration that includes property settings for many file types. You can download and install it with this:

curl https://brlcad.org/~sean/subversion.config > ~/.subversion/config

Once installed, run svn revert on your new file and then add it again. The properties should be set if the config file is installed properly and it's a recognized file type.

This problem usually looks like this:

[sean@bz (Wed May 28 13:27:55) brlcad]$ svn commit some_new_file.c
Sending      some_new_file.c
Transmitting file data ...svn: Commit failed (details follow):
svn: MERGE request failed on '/svnroot/brlcad/brlcad/trunk'
svn: 'pre-commit' hook failed with error output:
/var/local/mastertree/service-svn/hook-scripts/check-mime-type.pl:

brlcad/trunk/some_new_file.c : svn:mime-type is not set


   Every added file must have the svn:mime-type property set. In
   addition text files must have the svn:eol-style property set.
   
   For binary files try running
   svn propset svn:mime-type application/octet-stream path/of/file
   
   For text files try
   svn propset svn:mime-type text/plain path/of/file
   svn propset svn:eol-style native path/of/file
   
   You may want to consider uncommenting the auto-props section
   in your ~/.subversion/config file. Read the Subversion book
   (http://svnbook.red-bean.com/), Chapter 7, Properties section,
   Automatic Property Setting subsection for more help.
[sean@bz (Wed May 28 13:28:55) brlcad]$ svn revert some_new_file.c
Reverted 'some_new_file.c'
[sean@bz (Wed May 28 13:29:55) brlcad]$ curl http://brlcad.org/~sean/subversion.config > ~/.subversion/config
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10810  100 10810    0     0  30099      0 --:--:-- --:--:-- --:--:-- 81278
[sean@bz (Wed May 28 13:30:55) brlcad]$ svn add some_new_file.c
A         some_new_file.c
[sean@bz (Wed May 28 13:31:55) brlcad]$ svn commit some_new_file.c
... no mime type error ...

That said, if one wanted to manually add or change a file's properties:

[sean@bz (Wed May 29 13:50:51) brlcad]$ svn add some_file.odd
A         some_file.odd
[sean@bz (Wed May 29 13:51:32) brlcad]$ svn propset svn:mime-type text/plain some_file.odd
[sean@bz (Wed May 29 13:52:16) brlcad]$ svn propset svn:eol-style native some_file.odd