Thursday, February 05, 2009

Subversion, WebDAV, Windows and Microsoft Office

Let me start by saying that I love Subversion and find Tortoise-SVN and SVN.exe very, very easy to use and if you read this entire article, I can help you make it really easy for your business users to love Subversion as much as your developers.

I have used CVS on Windows entirely in the CLI for years and have never felt the overpowering need to have a more graphical client.

However the interface that you offer your users has an incredible impact on there love, or lack of love, for a particular tool.

Subversion, with a programmer-friendly CLI and excellent Windows Explorer (and Visual Studio via Anhk 2.0!) integration usually makes a big splash with developers and engineers.  Easy, simple and it just works right.

The question, "How do my users interface with Subversion and is it effective for them?" does have an easy answer for developers writing source code. 

The advantage is that these users have is that they are comfortable with SVN because they are comfortable with revision control systems in general.  They have used SVN, CVS, PVCS, ClearCase, Vault or BitKeeper at some point in their careers and they are comfortable with concepts like "Commits" and "Working Copies."  Sure, some of the SVN-specific features (interactive merges, properties and versionable renames) may take some getting used.  Their really are not that many core (from the client) differences between the actual functionality provided by these different systems.

However these same features, familiar advantages for developers, are foreign and frustrating for many "normal" business users.  They are familiar with Groove, UNC fileshares and Windows Explorer's basic features.  They will be baffled by working copies, SVN adds, commits, updates and history logs.  Documents won't get checked in.  Files will not be added.  Bad things will happen when people do updates and get conflicts.  Your wonderful Subversion server will be a problem, not a solution.  Revolt is just around the corner.  What can we do?

And then, the solution appears, bright and clear -- WebDAV!  WebDAV is great, right?  WebDAV uses the HTTP protocol so no firewall trouble.  It supported by Apache2 hosting on both UNIX and Windows.  Wikipedia even says that Windows XP and Windows 2000 have a built in WebDAV client!  Sounds like it will be really easy, no?

Here are the problems:
  • Windows WebDAV Client Does Not Work for Non-IIS Hosts
  • Windows WebDAV Client not supported on 64bit machines
  • WebDAV Client does not fully support HTTPS
  • Windows WebDAV Clients Are Incompatable with most applications
    • Microsoft Office Mostly Works -- Word Opens Everything Read-Only
    • Notepad.exe and Paint.exe don't
So the WebDAV solution looks less perfect, but still very promising.  Using the following Apache2 configuration, we can enable NT DOMAIN backed authentication, WebDAV and require users to authenticate on both read and write operations.


<Location /svn/office>
      DAV svn
1)    SVNPath D:/Subversion/office_repo
2)    SVNAutoversioning on
3)    ModMimeUsePathInfo on
      AuthType SSPI
      SSPIAuth On
      SSPIAuthoritative On
      SSPIDomain MY_DOMAIN
4)    Require valid-user
</Location>

  1. SVNPath ties this Apache2 location to a SVN Repository you created on the server.
  2. SVNAutoversioning configures this repository to support WebDAV clients who create new versions with MKCOL
  3. ModMimeUsePathInfo configures this repository to automatically guess at MIME type based on the extension.  This setting greatly improves Subversion's ability to recognize binary files on the server
  4. This require valid-user ensures that all WebDAV writes come with a valid NT DOMAIN (or if not using SSPI other) authenticated token
Apache2 is configured.  WebDAV is working great from your UNIX clients.  Everything seems good and now all we have to do is find a Windows WebDAV Client that works with Subversion without creating too much trouble for our SVN repository and users of other SVN clients.  For example, if we get a lock-happy WebDAV client then we won't have happy Tortoise SVN users.

So lets round up the Usual Suspects from the WebDAV mafia and see how they perform.
We don't have any extra money (who does) so price is going to be a major factor on selecting our WebDAV client.

Data Freeway
This application seems very nice.  Currently supports SSH (SSH1 and SSH2), WebDAV, common FTP and secure SFTP protocols.  From using it and reading the site, I can tell that it was not designed with a Subversion user in mind, but it does work and seems to work very well.  Microsoft Office documents open without trouble but when saving them in Windows XP on 32bit machines, I get a SEGFAULT every single time.  Everything was great with this until I ran into that defect it was a show stopper.  I put in a request with the maintainer of the application but could not wait.

SolutionBox NetDrive
This application is a clone (with defects fixed and a new theme) of Novell's NetDrive product.  This product works very well with WebDAV Subversion repositories and allows Microsoft Office AND non WebDAV compatible applications to work.  Free for home use -- too bad it is so expensive for a corporate customer.

Novell NetDrive
This application is an old UNIX interop platform component that Novell sold as part of the Netware stack.  It is no longer supported or distributed by Novell but you can use it if you download it from somewhere else.  There are open issues with it and there are constant questions and misinformation (from Novell and others) about the legality of using it.

AnyClient WebDAV
This application is billed "Free No-Install FTP, FTPS, SFTP and WebDAV Client" and it is all of those things.  It works like an FTP client and does not really give you the WebDAV-mounted-as-a-UNC-share magic that the other tools give you.  However, I owe AnyClient WebDAV a great deal of credit for finding it's more-function, highly stable predecessor RedDrive.

RedDrive WebDAV Client

This is our solution.  Discontinued, undocumented but my god it really works.  I mean, it really really works.
http://www.jscape.com/reddrive/
  • Supports WebDAV
  • Supports Integrated Authentication
  • Sends authentication tokens with MKCOL (Security Requirement)
  • No Licensing Cost, No Commercial Use Restrictions 
  • Mounts WebDAV over HTTPS into "My Computer"
  • All Windows Applications Work (everything we've tested)



Cory Trese
ph#:     937-609-9644
e-m:    cory.trese@gmail.com
www:  http://www.corytrese.com/

---

California Wedding Photography
http://www.corytrese.com/wedding.html

1 comment:

Anonymous said...

Just to clarify about the use of Novell's NetDrive, it is not legal to use it except in conjunction with Novell's iFolder server. Novell NetDrive is an OEM version of WebDrive from South River Technologies. WebDrive mounts a drive letter to FTP, SFTP, S3 servers as well as WebDAV. http://southrivertech.com/products/webdrive/index.html