This section is from the "Version Control with Subversion" book, by Ben Collins-Sussman, Brian W. Fitzpatrick and C. Michael Pilato. Also available from Amazon: Version Control with Subversion.
When browsing a Subversion repository, the web browser
gets a clue about how to render a file's contents by
looking at the Content-Type: header
returned in Apache's response to the
HTTP GET request. The value of this
header is some sort of MIME type. By default, Apache will
tell the web browsers that all repository files are of
the “default” MIME type,
typically text/plain. This can be
frustrating, however, if a user wishes repository files to
render as something more meaningful—for example,
it might be nice to have a foo.html file
in the repository actually render as HTML when
browsing.
To make this happen, you only need to make sure that
your files have the
proper svn:mime-type set. This is
discussed in more detail in
the section called “File Content Type”,
and you can even configure your client to automatically
attach proper svn:mime-type properties
to files entering the repository for the first time; see
the section called “Automatic Property Setting”.
So in our example, if one were to set
the svn:mime-type property
to text/html on
file foo.html, then Apache would
properly tell your web browser to render the file as
HTML. One could also attach
proper image/* mime-type properties to
images, and by doing this, ultimately get an entire web
site to be viewable directly from a repository! There's
generally no problem with doing this, as long as the
website doesn't contain any dynamically-generated
content.