Ganchos de modificación de recursos
La mayor parte de la función interesante asociada con un proveedor de depósito ocurre cuando el usuario trabaja con los recursos del proyecto configurado para el proveedor. Para poder estar al corriente de los cambios que el usuario efectúa en un recurso, el proveedor puede implementar ganchos de modificación de recursos. El conector de recursos suministra estos ganchos en forma de puntos de extensión. La
documentación de
IMoveDeleteHook
y IFileModificationValidator
describe los detalles de implementación de estos ganchos.
El conector del equipo optimiza y simplifica la asociación entre el gancho y
los recursos apropiados a base de registrar ganchos genéricos en el conector de
recursos. Los ganchos genéricos no hacen otra cosa que buscar un
determinado recurso en el proveedor de depósitos y obtener el gancho del
recurso. La ventaja de este procedimiento es que únicamente se llama al
gancho de un solo proveedor, en lugar de hacer que cada implementación de
proveedor registre un gancho que primero deba comprobar si el proveedor
gestiona el recurso.
Lo que esto supone para el conector es que el usuario proporciona los ganchos necesarios alterando temporalmente los métodos de la clase
RepositoryProvider.
La implementación por omisión de estos métodos devuelve el valor null, lo que indica
que no hace falta ningún gancho.
- getMoveDeleteHook - devuelve un IMoveDeleteHook
apropiado para el proveedor. Este gancho permite a los proveedores controlar cómo se producen los movimientos y supresiones e incluye la posibilidad de impedir que se produzcan. Los implementadores pueden proporcionar implementaciones
alternativas para mover o suprimir archivos, carpetas y proyectos. El cliente CVS
utiliza este gancho para supervisar las supresiones de las carpetas y asegurar que se
recuerden los archivos que podía haber en las carpetas suprimidas para así poderlos suprimir
más adelante del depósito si conviene.
- getFileModificationValidator - devuelve un
IFileModificationValidator
apropiado para el proveedor. Este gancho permite a los proveedores efectuar una comprobación previa de las modificaciones u operaciones de guardado efectuadas en los archivos. Este gancho es necesario generalmente cuando un proveedor de depósito desea implementar la creación de versiones pesimista.
En la creación de versiones pesimista, un archivo debe reservarse antes de modificarlo y sólo un cliente puede reservar un archivo en un momento dado.
La creación de versiones pesimista puede implementarse reservando un archivo (si aún no está reservado) siempre que se edita, y reincorporándolo de nuevo cuando se guarda. Dado que CVS emplea un esquema de
creación de versiones optimista, no implementa este gancho.
