My favorites | Sign in
Logo
          
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
<appendix id="svn.webdav">
<title>WebDAV and Autoversioning</title>

<para>WebDAV is an extension to HTTP, and it is growing more and more
popular as a standard for file sharing. Today's operating systems
are becoming extremely web-aware, and many now have built-in
support for mounting <quote>shares</quote> exported by WebDAV
servers.</para>

<para>If you use Apache as your Subversion network server, to
some extent you are also running a WebDAV server. This appendix
gives some background on the nature of this protocol, how
Subversion uses it, and how well Subversion interoperates with
other software that is WebDAV-aware.</para>


<!-- ================================================================= -->
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.webdav.basic">
<title>What Is WebDAV?</title>

<para><firstterm>DAV</firstterm> stands for <quote>Distributed
Authoring and Versioning.</quote> RFC 2518 defines a set of
concepts and accompanying extension methods to HTTP 1.1 that
make the Web a more universal read/write medium. The basic
idea is that a WebDAV-compliant web server can act like a
generic file server; clients can <quote>mount</quote> shared
folders over HTTP that behave much like other network
filesystems (such as NFS or SMB).</para>

<para>The tragedy, though, is that despite the acronym, the RFC
specification doesn't actually describe any sort of version
control. Basic WebDAV clients and servers assume that only one
version of each file or directory exists, and that it can be
repeatedly overwritten.</para>

<para>Because RFC 2518 left out versioning concepts, another
committee was left with the responsibility of writing RFC 3253 a
few years later. The new RFC adds versioning concepts to
WebDAV, placing the <quote>V</quote> back in
<quote>DAV</quote>&mdash;hence the term <quote>DeltaV.</quote>
WebDAV/DeltaV clients and servers are often called just
<quote>DeltaV</quote> programs, since DeltaV implies the
existence of basic WebDAV.</para>

<para>The original WebDAV standard has been widely successful.
Every modern computer operating system has a general WebDAV
client built in (details to follow), and a number of popular
standalone applications are also able to speak
WebDAV&mdash;Microsoft Office, Dreamweaver, and Photoshop, to
name a few. On the server end, Apache HTTP Server has been
able to provide WebDAV services since 1998 and is considered the
de facto open source standard. Several other
commercial WebDAV servers are available, including Microsoft's own
IIS.</para>

<para>DeltaV, unfortunately, has not been so successful. It's
very difficult to find any DeltaV clients or servers. The few
that do exist are relatively unknown commercial products, and
thus it's very difficult to test interoperability. It's not
entirely clear as to why DeltaV has remained stagnant. Some
opine that the specification is just too complex. Others argue
that while WebDAV's features have mass appeal (even the least
technical users appreciate network file sharing), its version
control features just aren't interesting or necessary for most
users. Finally, some believe that DeltaV remains unpopular
because there's still no open source server product that
implements it well.</para>

<para>When Subversion was still in its design phase, it seemed
like a great idea to use Apache as a network server. It already
had a module to provide WebDAV services. DeltaV was a
relatively new specification. The hope was that the Subversion
server module (<command>mod_dav_svn</command>) would eventually
evolve into an open source DeltaV reference implementation.
Unfortunately, DeltaV has a very specific versioning model that
doesn't quite line up with Subversion's model. Some concepts
were mappable; others were not.</para>

<para>What does this mean, then?</para>

<para>First, the Subversion client is not a fully implemented
DeltaV client. It needs certain types of things from the server
that DeltaV itself cannot provide, and thus is largely dependent
on a number of Subversion-specific
HTTP <literal>REPORT</literal> requests that
only <command>mod_dav_svn</command> understands.</para>

<para>Second, <command>mod_dav_svn</command> is not a
fully realized DeltaV server. Many portions of the DeltaV
specification were irrelevant to Subversion, and thus were left
unimplemented.</para>

<para>There is still some debate in the developer community as to
whether or not it's worthwhile to remedy either of these
situations. It's fairly unrealistic to change Subversion's
design to match DeltaV, so there's probably no way the client
can ever learn to get everything it needs from a general DeltaV
server. On the other hand,
<command>mod_dav_svn</command> <emphasis>could</emphasis> be
further developed to implement all of DeltaV, but it's hard to
find motivation to do so&mdash;there are almost no DeltaV
clients to interoperate with.</para>

</sect1>

<!-- ================================================================= -->
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.webdav.autoversioning">
<title>Autoversioning</title>

<para>While the Subversion client is not a full DeltaV client, and
the Subversion server is not a full DeltaV server, there's still a
glimmer of WebDAV interoperability to be happy about:
<firstterm>autoversioning</firstterm>.</para>

<para>Autoversioning is an optional feature defined in the DeltaV
standard. A typical DeltaV server will reject an ignorant
WebDAV client attempting to do a <literal>PUT</literal> to a
file that's under version control. To change a
version-controlled file, the server expects a series of proper
versioning requests: something like
<literal>MKACTIVITY</literal>, <literal>CHECKOUT</literal>,
<literal>PUT</literal>, <literal>CHECKIN</literal>. But if the
DeltaV server supports autoversioning, write requests from
basic WebDAV clients are accepted. The server behaves as though the
client <emphasis>had</emphasis> issued the proper series of
versioning requests, performing a commit under the hood. In
other words, it allows a DeltaV server to interoperate with
ordinary WebDAV clients that don't understand versioning.</para>

<para>Because so many operating systems already have integrated
WebDAV clients, the use case for this feature can be incredibly
appealing to administrators working with non-technical users.
Imagine an office of ordinary users running Microsoft Windows or
Mac OS. Each user <quote>mounts</quote> the Subversion
repository, which appears to be an ordinary network folder.
They use the shared folder as they always do: open files, edit
them, and save them. Meanwhile, the server is automatically
versioning everything. Any administrator (or knowledgeable
user) can still use a Subversion client to search history and
retrieve older versions of data.</para>

<para>This scenario isn't fiction&mdash;it's real and it works, as
of Subversion 1.2 and later. To activate autoversioning in
<command>mod_dav_svn</command>, use the
<literal>SVNAutoversioning</literal> directive within the
<filename>httpd.conf</filename> <literal>Location</literal>
block, like so:</para>

<screen>
&lt;Location /repos&gt;
DAV svn
SVNPath /var/svn/repository
SVNAutoversioning on
&lt;/Location&gt;
</screen>

<para>When Subversion autoversioning is active, write requests
from WebDAV clients result in automatic commits. A generic log
message is automatically generated and attached to each
revision.</para>

<para>Before activating this feature, however, understand what
you're getting into. WebDAV clients tend to do
<emphasis>many</emphasis> write requests, resulting in a huge
number of automatically committed revisions. For example, when
saving data, many clients will do a <literal>PUT</literal> of a
0-byte file (as a way of reserving a name) followed by another
<literal>PUT</literal> with the real file data. The single
file-write results in two separate commits. Also consider that
many applications auto-save every few minutes, resulting in even
more commits.</para>

<para>If you have a post-commit hook program that sends email, you
may want to disable email generation either altogether or on
certain sections of the repository; it depends on whether you
think the influx of emails will still prove to be valuable
notifications or not. Also, a smart post-commit hook program
can distinguish between a transaction created via autoversioning
and one created through a normal Subversion commit operation.
The trick is to look for a revision property
named <literal>svn:autoversioned</literal>. If present, the
commit was made by a generic WebDAV client.</para>

<para>Another feature that may be a useful complement for
Subversion's autoversioning comes from Apache's
<literal>mod_mime</literal> module. If a WebDAV client adds a
new file to the repository, there's no opportunity for the user
to set the the <literal>svn:mime-type</literal> property. This
might cause the file to appear as a generic icon when viewed
within a WebDAV shared folder, not having an association with
any application. One remedy is to have a sysadmin (or other
Subversion-knowledgeable person) check out a working copy and
manually set the <literal>svn:mime-type</literal> property on
necessary files. But there's potentially no end to such cleanup
tasks. Instead, you can use the
<literal>ModMimeUsePathInfo</literal> directive in your
Subversion <literal>&lt;Location&gt;</literal> block:</para>

<screen>
&lt;Location /repos&gt;
DAV svn
SVNPath /var/svn/repository
SVNAutoversioning on

ModMimeUsePathInfo on

&lt;/Location&gt;
</screen>

<para>This directive allows <literal>mod_mime</literal> to attempt
automatic deduction of the MIME type on new files that enter the
repository via autoversioning. The module looks at the file's
named extension and possibly the contents as well; if the file
matches some common patterns, the
file's <literal>svn:mime-type</literal> property will be set
automatically.</para>

</sect1>

<!-- ================================================================= -->
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.webdav.clients">
<title>Client Interoperability</title>

<para>All WebDAV clients fall into one of three
categories&mdash;standalone applications, file-explorer
extensions, or filesystem implementations. These categories
broadly define the types of WebDAV functionality available to
users. <xref linkend="svn.webdav.clients.tbl-1"/> gives our
categorization as well as a quick description of some common pieces of
WebDAV-enabled software. You can find more details about these software
offerings, as well as their general category, in
the sections that follow.</para>

<table id="svn.webdav.clients.tbl-1">
<title>Common WebDAV clients</title>
<tgroup cols="6">
<thead>
<row>
<entry>Software</entry>
<entry>Type</entry>
<entry>Windows</entry>
<entry>Mac</entry>
<entry>Linux</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>Adobe Photoshop</entry>
<entry>Standalone WebDAV application</entry>
<entry>X</entry>
<entry></entry>
<entry></entry>
<entry>Image editing software, allowing direct opening
from, and writing to, WebDAV URLs</entry>
</row>
<row>
<entry>cadaver</entry>
<entry>Standalone WebDAV application</entry>
<entry></entry>
<entry>X</entry>
<entry>X</entry>
<entry>Command-line WebDAV client supporting file
transfer, tree, and locking operations</entry>
</row>
<row>
<entry>DAV Explorer</entry>
<entry>Standalone WebDAV application</entry>
<entry>X</entry>
<entry>X</entry>
<entry>X</entry>
<entry>Java GUI tool for exploring WebDAV shares</entry>
</row>
<row>
<entry>Adobe Dreamweaver</entry>
<entry>Standalone WebDAV application</entry>
<entry>X</entry>
<entry></entry>
<entry></entry>
<entry>Web production software able to directly read from
and write to WebDAV URLs</entry>
</row>
<row>
<entry>Microsoft Office</entry>
<entry>Standalone WebDAV application</entry>
<entry>X</entry>
<entry></entry>
<entry></entry>
<entry>Office productivity suite with several components
able to directly read from and write to WebDAV
URLs</entry>
</row>
<row>
<entry>Microsoft Web Folders</entry>
<entry>File-explorer WebDAV extension</entry>
<entry>X</entry>
<entry></entry>
<entry></entry>
<entry>GUI file explorer program able to perform tree
operations on a WebDAV share</entry>
</row>
<row>
<entry>GNOME Nautilus</entry>
<entry>File-explorer WebDAV extension</entry>
<entry></entry>
<entry></entry>
<entry>X</entry>
<entry>GUI file explorer able to perform tree
operations on a WebDAV share</entry>
</row>
<row>
<entry>KDE Konqueror</entry>
<entry>File-explorer WebDAV extension</entry>
<entry></entry>
<entry></entry>
<entry>X</entry>
<entry>GUI file explorer able to perform tree
operations on a WebDAV share</entry>
</row>
<row>
<entry>Mac OS X</entry>
<entry>WebDAV filesystem implementation</entry>
<entry></entry>
<entry>X</entry>
<entry></entry>
<entry>Operating system that has built-in support for mounting
WebDAV shares.</entry>
</row>
<row>
<entry>Novell NetDrive</entry>
<entry>WebDAV filesystem implementation</entry>
<entry>X</entry>
<entry></entry>
<entry></entry>
<entry>Drive-mapping program for assigning Windows drive
letters to a mounted remote WebDAV share</entry>
</row>
<row>
<entry>SRT WebDrive</entry>
<entry>WebDAV filesystem implementation</entry>
<entry>X</entry>
<entry></entry>
<entry></entry>
<entry>File transfer software, which, among other things,
allows the assignment of Windows drive letters to a
mounted remote WebDAV share</entry>
</row>
<row>
<entry>davfs2</entry>
<entry>WebDAV filesystem implementation</entry>
<entry></entry>
<entry></entry>
<entry>X</entry>
<entry>Linux filesystem driver that allows you to mount a
WebDAV share</entry>
</row>

</tbody>
</tgroup>
</table>

<!-- =============================================================== -->
<sect2 id="svn.webdav.clients.standalone">
<title>Standalone WebDAV Applications</title>

<para>A WebDAV application is a program that speaks WebDAV
protocols with a WebDAV server. We'll cover some of the most
popular programs with this kind of WebDAV support.</para>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect3 id="svn.webdav.clients.standalone.windows">
<title>Microsoft Office, Dreamweaver, Photoshop</title>

<para>On Windows, several well-known applications
contain integrated WebDAV client functionality, such as
Microsoft's Office,
<footnote>
<para>WebDAV support was removed from Microsoft Access for
some reason, but it exists in the rest of the Office
suite.</para>
</footnote>
Adobe's Photoshop and Dreamweaver programs.
They're able to directly open and save to URLs, and tend to
make heavy use of WebDAV locks when editing a file.</para>

<para>Note that while many of these programs also exist for
Mac OS X, they do not appear to support WebDAV directly
on that platform. In fact, on Mac OS X, the
<guimenu>File&rarr;Open</guimenu> dialog box doesn't allow
one to type a path or URL at all. It's likely that the
WebDAV features were deliberately left out of Macintosh
versions of these programs, since OS X already provides such
excellent low-level filesystem support for WebDAV.</para>

</sect3>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect3 id="svn.webdav.clients.standalone.free">
<title>cadaver, DAV Explorer</title>

<para>cadaver is a bare-bones Unix command-line program for
browsing and changing WebDAV shares. Like the Subversion
client, it uses the neon HTTP library&mdash;not
surprisingly, since both neon and cadaver are written by the
same author. cadaver is free software (GPL license) and is
available at
<ulink url="http://www.webdav.org/cadaver/"/>.</para>

<para>Using cadaver is similar to using a command-line FTP
program, and thus it's extremely useful for basic WebDAV
debugging. It can be used to upload or download files in a
pinch, to examine properties, and to copy, move,
lock, or unlock files:</para>

<screen>
$ cadaver http://host/repos
dav:/repos/&gt; ls
Listing collection `/repos/': succeeded.
Coll: &gt; foobar 0 May 10 16:19
&gt; playwright.el 2864 May 4 16:18
&gt; proofbypoem.txt 1461 May 5 15:09
&gt; westcoast.jpg 66737 May 5 15:09

dav:/repos/&gt; put README
Uploading README to `/repos/README':
Progress: [=============================&gt;] 100.0% of 357 bytes succeeded.

dav:/repos/&gt; get proofbypoem.txt
Downloading `/repos/proofbypoem.txt' to proofbypoem.txt:
Progress: [=============================&gt;] 100.0% of 1461 bytes succeeded.
</screen>

<para>DAV Explorer is another standalone WebDAV client, written
in Java. It's under a free Apache-like license and is
available at <ulink url="http://www.ics.uci.edu/~webdav/"/>.
It does everything cadaver does, but has the
advantages of being portable and being a more user-friendly GUI
application. It's also one of the first clients to support
the new WebDAV Access Control Protocol (RFC 3744).</para>

<para>Of course, DAV Explorer's ACL support is useless in this
case, since <command>mod_dav_svn</command> doesn't support
it. The fact that both cadaver and DAV Explorer support
some limited DeltaV commands isn't particularly useful
either, since they don't allow <literal>MKACTIVITY</literal>
requests. But it's not relevant anyway; we're assuming all
of these clients are operating against an autoversioning
repository.</para>

</sect3>
</sect2>

<!-- =============================================================== -->
<sect2 id="svn.webdav.clients.file-explorer-extensions">
<title>File-Explorer WebDAV Extensions</title>

<para>Some popular file explorer GUI programs support WebDAV
extensions that allow a user to browse a DAV share as though it
was just another directory on the local computer, and to
perform basic tree editing operations on the items in that
share. For example, Windows Explorer is able to browse a
WebDAV server as a <quote>network place.</quote> Users can
drag files to and from the desktop, or can rename, copy, or
delete files in the usual way. But because it's only a
feature of the file explorer, the DAV share isn't visible to
ordinary applications. All DAV interaction must happen
through the explorer interface.</para>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect3 id="svn.webdav.clients.file-explorer-extensions.windows">
<title>Microsoft Web Folders</title>

<para>Microsoft was one of the original backers of the WebDAV
specification, and first started shipping a client in
Windows 98, which was known as Web Folders. This client was
also shipped in Windows NT 4.0 and Windows 2000.</para>

<para>The original Web Folders client was an extension to
Explorer, the main GUI program used to browse filesystems. It
works well enough. In Windows 98, the feature might need to
be explicitly installed if Web Folders aren't already visible
inside My Computer. In Windows 2000, simply
add a new <quote>network place,</quote> enter the URL, and the
WebDAV share will pop up for browsing.</para>

<para>With the release of Windows XP, Microsoft started shipping
a new implementation of Web Folders, known as the WebDAV
Mini-Redirector. The new implementation is a
filesystem-level client, allowing WebDAV shares to be mounted
as drive letters. Unfortunately, this implementation is
incredibly buggy. The client usually tries to convert HTTP
URLs (<literal>http://host/repos</literal>) into UNC share
notation (<literal>\\host\repos</literal>); it also often
tries to use Windows Domain authentication to respond to
basic-auth HTTP challenges, sending usernames as
<literal>HOST\username</literal>. These interoperability
problems are severe and are documented in numerous places around
the Web, to the frustration of many users. Even Greg Stein,
the original author of Apache's WebDAV module, bluntly
states that XP Web Folders simply can't operate against an Apache
server.</para>

<para>Windows Vista's initial implementation of Web Folders seems to
be almost the same as XP's, so it has the same sort of
problems. With luck, Microsoft will remedy these issues in
a Vista Service Pack.</para>

<para>However, there seem to be workarounds for both XP and
Vista that allow Web Folders to work against Apache. Users
have mostly reported success with these techniques, so we'll
relay them here.</para>

<para>On Windows XP, you have two options. First, search
Microsoft's web site for update KB90730, <quote>Software
Update for Web Folders.</quote> This may fix all your
problems. If it doesn't, it seems that the original pre-XP
Web Folders implementation is still buried within the
system. You can unearth it by going to Network
Places and adding a new network place. When prompted,
enter the URL of the repository, but <emphasis>include a
port number</emphasis> in the URL. For
example, you should enter <userinput>http://host/repos</userinput>
as <userinput>http://host:80/repos</userinput> instead.
Respond to any authentication prompts with your Subversion
credentials.</para>

<para>On Windows Vista, the same KB90730 update may clear
everything up. But there may still be other issues. Some
users have reported that Vista considers
all <literal>http://</literal> connections insecure, and thus
will always fail any authentication challenges from Apache
unless the connection happens
over <literal>https://</literal>. If you're unable to connect
to the Subversion repository via SSL, you can tweak the
system registry to turn off this behavior. Just change the
value of the <literal>HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient\Parameters\BasicAuthLevel</literal>
key from <userinput>1</userinput> to <userinput>2</userinput>. A final warning: be sure to set up the Web
Folder to point to the repository's root directory
(<filename>/</filename>), rather than some subdirectory
such as <filename>/trunk</filename>. Vista Web Folders
seems to work only against repository roots.</para>

<para>In general, while these workarounds may function for
you, you might get a better overall experience using a
third-party WebDAV client such as WebDrive or NetDrive.</para>

</sect3>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect3 id="svn.webdav.clients.file-explorer-extensions.linux-de">
<title>Nautilus, Konqueror</title>

<para>Nautilus is the official file manager/browser for the
GNOME desktop (<ulink url="http://www.gnome.org"/>), and
Konqueror is the manager/browser for the KDE desktop (<ulink
url="http://www.kde.org"/>). Both of these applications
have an explorer-level WebDAV client built in, and they
operate just fine against an autoversioning repository.</para>

<para>In GNOME's Nautilus, select the <guimenuitem>File&rarr;Open
location</guimenuitem> menu item and enter the URL in the
dialog box presented. The repository should then be
displayed like any other filesystem.</para>

<para>In KDE's Konqueror, you need to use the
<literal>webdav://</literal> scheme when entering the URL in
the location bar. If you enter
an <literal>http://</literal> URL, Konqueror will behave
like an ordinary web browser. You'll likely see the generic
HTML directory listing produced
by <command>mod_dav_svn</command>. When you enter
<userinput>webdav://host/repos</userinput> instead of
<userinput>http://host/repos</userinput>, Konqueror becomes a
WebDAV client and displays the repository as a
filesystem.</para>

</sect3>
</sect2>

<sect2 id="svn.webdav.clients.fs-impl">
<title>WebDAV Filesystem Implementation</title>

<para>The WebDAV filesystem implementation is arguably the best
sort of WebDAV client. It's implemented as a low-level
filesystem module, typically within the operating system's
kernel. This means that the DAV share is mounted like any
other network filesystem, similar to mounting an NFS share on
Unix or attaching an SMB share as a drive letter in Windows.
As a result, this sort of client provides completely
transparent read/write WebDAV access to all programs.
Applications aren't even aware that WebDAV requests are
happening.</para>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect3 id="svn.webdav.clients.fs-impl.windows">
<title>WebDrive, NetDrive</title>

<para>Both WebDrive and NetDrive are excellent commercial
products that allow a WebDAV share to be attached as drive
letters in Windows. As a result, you can operate on the
contents of these WebDAV-backed pseudodrives as easily as
you can against real local hard drives, and in the same
ways. You can purchase WebDrive from South River
Technologies (<ulink url="http://www.southrivertech.com"/>).
Novell's NetDrive is freely available online, but requires
users to have a NetWare license.</para>

</sect3>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect3 id="svn.webdav.clients.fs-impl.macosx">
<title>Mac OS X</title>

<para>Apple's OS X operating system has an integrated
filesystem-level WebDAV client. From the Finder, select the
<guimenuitem>Go&rarr;Connect to Server</guimenuitem> menu
item. Enter a WebDAV URL, and it appears as a disk on the
desktop, just like any other mounted volume. You can also
mount a WebDAV share from the Darwin terminal by using the
<literal>webdav</literal> filesystem type with the
<command>mount</command> command:</para>

<screen>
$ mount -t webdav http://svn.example.com/repos/project /some/mountpoint
$
</screen>

<para>Note that if your <command>mod_dav_svn</command> is
older than version 1.2, OS X will refuse to mount the share
as read/write; it will appear as read-only. This is because
OS X insists on locking support for read/write shares, and
the ability to lock files first appeared in Subversion
1.2.</para>

<para>Also, OS X's WebDAV client can sometimes be overly
sensitive to HTTP redirects. If OS X is unable to mount the
repository at all, you may need to enable the <literal>BrowserMatch</literal>
directive in the Apache server's
<filename>httpd.conf</filename>:</para>

<screen>
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
</screen>

</sect3>

<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<sect3 id="svn.webdav.clients.fs-impl.linux">
<title>Linux davfs2</title>

<para>Linux davfs2 is a filesystem module for the Linux kernel,
whose development is organized at <ulink
url="http://dav.sourceforge.net/"/>. Once you install
davfs2, you can mount a WebDAV network share using the usual Linux mount
command:</para>

<screen>
$ mount.davfs http://host/repos /mnt/dav
</screen>

</sect3>
</sect2>
</sect1>

</appendix>

<!--
local variables:
sgml-parent-document: ("book.xml" "appendix")
end:
-->
Show details Hide details

Change log

r3524 by julianf...@btopenworld.com on May 26, 2009   Diff
Stylistic changes across a few files...

* src/en/book/appb-svn-for-cvs-users.xml,
  src/en/book/appc-webdav.xml,
  src/en/book/ch00-preface.xml,
  src/en/book/ch02-basic-usage.xml,
  src/en/book/ch03-advanced-topics.xml,
  src/en/book/ch04-branching-and-
merging.xml,
  src/en/book/ch05-repository-admin.xml,
  src/en/book/ch06-server-
configuration.xml,
...
Go to: 

Older revisions

r3287 by cmpilato on Sep 03, 2008   Diff
Minor fixes.  Patch by Øyvind A. Holm
<sunny {at} sunbase.org>.

* src/en/book/appc-webdav.xml
  Refer to Adobe as the producer of
...
r3224 by cmpilato on Jul 28, 2008   Diff
Enter O'Reilly second-round copyedits.
r3206 by cmpilato on Jul 24, 2008   Diff
Port O'Reilly production SVN changeset
r101464 to our tree, whose log
message read thusly:

   In VCWS 2e, begin the work of
...
All revisions of this file

File info

Size: 31613 bytes, 677 lines

File properties

svn:mime-type
text/xml
svn:eol-style
native
Hosted by Google Code