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.
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