En esta sección describiremos los clientes WebDAV genéricos más comunes
(al momento de escribir esto), y qué tan bien operan con un servidor
mod_dav_svn usando la directiva SVNAutoversioning
. El
RFC 2518 es un poco largo, y tal vez demasiado flexible. Cada cliente
WebDAV se comporta ligeramente diferente, y esto crea problemas
ligeramente diferentes.
Windows 98, 2000, y XP tienen un cliente integrado WebDAV conocido como “WebFolders”. En Windows 98, esta característica puede necesitar ser instalada de manera explícita; si está presente, un directorio “WebFolders” aparece directamente dentro de Mi PC. En Windows 2000 y XP, simplemente abra Mis Sitios de Red, y ejecute el icono Añadir Sitio de Red. Cuando se le solicite, ingrese la URL WebDAV. La carpeta compartida aparecerá dentro de Mis Sitios de Red.
Muchas de las operaciones de escritura funcionan bien con un servidor de autoversionado mod_dav_svn, pero hay unos cuantos problemas:
Si un computador Windows XP es miembro de un dominio NT, parece ser incapaz de conectarse a la carpeta compartida WebDAV. Pide repetidamente el nombre y contraseña, aún cuando el servidor Apache no está presentando un reto de autenticación! Si la máquina no es parte de un dominio NT, entonces la carpeta compartida es montada sin ningún problema.
Este problema parece surgir de los cambios en la manera en que
Windows XP crea accesos directos WebFolder (archivos
.lnk
). Algunas veces reemplaza
la URL de la carpeta compartida WebDAV con una ruta Windows
“UNC” (Universal Naming Convention). Esto hace que
Explorer intente hacer la conexión usando SMB en vez de HTTP.
Una manera de resolver el problema es crear el acceso directo
.lnk
en un computador Windows 2000 y luego
copiar el acceso directo al computador Windows XP. Porbablemente
también sería posible “arreglar” el acceso directo
usando un editor HEX, si se fuera a hacer ingeniería inversa sobre
el formato de archivo .lnk
.
Un archivo no puede ser abierto para edición directamente sobre la
carpeta compartida; siempre es de sólo lectura. La técnica
mod_dav_lock no ayuda, porque los WebFolders no usan el método
LOCK
en absoluto. Sin embargo, el método copiar,
editar, re-copiar
, mencionado anteriormente, funciona.
El archivo en la carpeta compartida puede ser sobreescrito
exitosamente por una copia editada localmente.
El sistema operativo de Apple, OS X, tiene un cliente WebDAV integrado. Desde Finder, seleccione el ítem “Conectar a servidor” desde el menú Ir. Ingrese una URL WebDAV, y ésta aparecerá como un disco en el escritorio, como cualquier servidor de archivos. [60]
Desafortunadamente, este cliente se rehúsa a trabajar con autoversionado
mod_dav_svn debido a la falta de soporte de LOCK
. Mac
OS X descubre la falta de LOCK
durante el intercambio
de las características HTTP OPTIONS
, y debido a esto
monta el repositorio Subversion como una carpeta compartida de sólo
lectura. Desupés de esto, no es posible hacer operaciones de escritura
en absoluto. Para montar el repositorio como una carpeta compartida de
lectura-escritura, usted debe usar el truco con
mod_dav_lock como se discutión previamente. Una vez el bloqueo parezca
trabajar, la carpeta compartida se comporta bastante bien: los archivos
pueden abrirse directamente para lectura/escritura, aunque cada
operación de guardado hará que el cliente haga un PUT
a una ubicación temporal, un DELETE
del archivo
original, y un MOVE
del recurso temporal al nombre de
archivo original. ¡Ésas son tres revisiones Subversion nuevas en cada
guardado!
Una palabra de advertencia: El cliente WebDAV de OS X puede ser
demasiado sensitivo a las redirecciones HTTP. Si usted no puede montar
el repositorio en absoluto, puede que necesite habilitar la directiva
BrowserMatch
en su httpd.conf
:
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
Nautilus es el administrador/explorador de archivos oficial del
escritorio GNOME. Su página principal está en
http://www.gnome.org/projects/nautilus/
.
Sólo con escribir una URL WebDAV en la ventana de Nautilus, la carpeta
DAV aparece como un sistema de archivos local.
En general, Nautilus 2 trabaja razonablemente bien con un mod_dav_svn que haga autoversionado, con las siguientes precauciones:
Cualquier archivo abierto directamente desde la carpeta compartida
es tratado como de sólo lectura. Aún el truco con mod_dav_lock
parece no tener efecto. Parece que Nautilus nunca llama
el método LOCK
en absoluto. El truco
“copiar localmente, editar, copiar de vuelta” funciona,
sin embargo. Desafortunadamente, Nautilus sobreescribe el archivo
viejo llamando a DELETE
primero, lo que crea una
revisión extra.
Cuando se sobreescribe o se crea un archivo, Nautilus hace primero
un PUT
de un archivo vacío, y luego lo
sobreescribe con un segundo PUT
. Esto crea dos
revisiones en el sistema de archivos Subversion, en vez de una sola.
Cuando se borra una colección, se llama un DELETE
HTTP en cada hijo individual en vez de hacerlo sobre toda la
colección. Esto crea un montón de revisiones nuevas.
Linux davfs2 es un módulo de sistema de archivos para el kernel de
Linux, cuyo desarrollo se ubica en
http://dav.sourceforge.net/
. Una
vez instalado, una carpeta WebDAV compartida puede ser montada con el
comando estándar de Linux mount.
Se dice en las calles que este cliente DAV no funciona en absoluto con
el autoversionado de mod_dav_svn. Cada intento de escribir al servidor
es precedido por una solicitud LOCK
, que mod_dav_svn,
no soporta. En este momento, no hay datos que indiquen si el uso de
mod_dav_lock resuelva este problema.