
abstract:
  wdfs is a webdav filesystem with special features for accessing subversion
  repositories. it is based on fuse v2.3+ and neon v0.24.7+.


author of wdfs:
  (c) 2005 - 2006 jens m. noedler, noedler@web.de


home of wdfs:
  http://noedler.de/projekte/wdfs/


features:
 - generic webdav filesystem
 - http redirect support and https support
 - support for file locking (3 different modes)
 - access to all revisions of a webdav exported subversion repository
 - versioning filesystem for autoversioning enabled subversion repositories


dependencies:
 - operating systems: linux (with kernel 2.4 or 2.6) or freebsd (6.x or 7.x)
 - fuse (filesystem in userspace) v2.3 or later (http://fuse.sourceforge.net/)
   fuse v2.5 or later and linux kernel 2.6.15 or later are recommended.
 - neon webdav library v0.24.7 or later (http://www.webdav.org/neon/)


installation:
  $ tar xfz wdfs-1.x.x.tar.gz
  $ cd wdfs-1.x.x
  $ ./configure && make
  $ sudo -c "make install"


debian packages:
  http://www.gnu.buildtolearn.net/linux/packages/wdfs/
  thanks for providing the packages, simon rutishauser!


usage:
  $ mkdir ~/mountpoint
  $ wdfs ~/mountpoint -a http[s]://webdav-server/[directory/] [options]
  $ wdfs -h      # prints wdfs and fuse options


limitations of this implementation:
 - wdfs is not (yet) multithread safe. it always uses fuse single thread mode.
 - read/write of big files (~ 50 MB+) is slow, because the _complete_ file
   will be GET/PUT on a request.
 - svn mode: only up to 2^31-1 revisions can be accessed,
   because "latest_revision" is an integer variable.
 - svn mode: if a subdirectory of a subversion repository is mounted, the
   "svn_basedir" shows the content of the repository root and not only the
   content of the mounted subdir. [caused by svn_get_remotepath()]
 - http redirect support:
    * there is no redirect support for the mountpoint. please mount the new
      location, that will be printed as an error message.
    * the redirect support is limited to the webdav server, that is mounted.
      redirects to another server are not supported.


limitations of wdfs, caused by other limitations:
 - wdfs supports only utf-8 encoded file and directory names for svn access.
   use utf8 capable applications or pure ascii (no iso8859!) encoded names.
   (limitation caused by subversion, which stores all data utf-8 encoded)
 - wdfs does not support setting file attributes with utime() or utimes().
   (e.g. used by "touch file -m -t 200601010000"). see wdfs_setattr() for
   details. (limitation caused by webdav rfc 2518)


source code conventions:
 - variable name "remotepath" is used for WebDAV access (/remote/dir/file)
 - variable name "localpath" is used for local access (/file)
 - variable name "ret" is used for the return values of methods
 - methods and structs starting with "ne_" are part of the neon library
 - error output:
    - "## " prefix for warnings and error messages
 - debug output:
    - ">> " prefix for fuse callback methods
    - "** " prefix for cache related messages (no errors)
    - "++ " prefix for locking related messages (no errors)


version number conventions:
 - the major number will never change. only for a complete rewrite. ;-)
 - the minor number changes if new features are introduced.
   warning: this may include backwards-incompatible changes!
 - the last number changes on bugfixes and little changes.
   e.g. v1.1.0 introduced new features from it's predecessor v1.0.1


license:
  wdfs is distributed under the terms of the gnu general public license.
  see file COPYING for details.


acknowledgements:
  miklos szeredi for developing fuse and being a great maintainer, the
  members of the fuse-devel mailing list for helping me with fuse and
  wdfs and everybody who is contributing to wdfs!

