Ganchos de modificação de recurso
A maior parte das funções interessantes associadas a um provedor de repositório
ocorre à medida que o usuário trabalha com recursos no projeto que está configurado para
o provedor. Para que fique ciente das alterações que o usuário faz em um
recurso, o provedor pode implementar ganchos
de modificação de recursos. O plug-in de recursos fornece esses ganchos como
pontos de extensão. A documentação para IMoveDeleteHook
e IFileModificationValidator
descreve os detalhes para implementar esses ganchos.
O plug-in da equipe otimiza e simplifica a associação do gancho com
os recursos apropriados registrando ganchos genéricos no plug-in dos
recursos. Esses ganchos genéricos simplesmente procuram no provedor de repositório
um determinado recurso e obtêm seu gancho. A vantagem é que apenas um gancho de
provedor é chamado, em vez de cada implementação de provedor ter que registrar um
gancho que deve verificar primeiramente se o recurso é gerenciado pelo provedor.
O significado disso para o plug-in é que você fornece os ganchos necessários por meio
da substituição de métodos no RepositoryProvider.
A implementação padrão desses métodos responde null, indicando que
nenhum gancho é necessário.
- getMoveDeleteHook - responde com um IMoveDeleteHook
apropriado para o provedor. Este gancho permite que os provedores controlem
como os movimentos e exclusões ocorrerão e inclui a capacidade de evitar que
aconteçam. Os implementadores podem fornecer implementações alternativas para
mover ou excluir arquivos, pastas e projetos. O cliente CVS utiliza
este gancho para monitorar exclusões de pastas e assegurar que os arquivos contidos nas
pastas excluídas sejam lembrados para que possam, posteriormente, ser excluídos do
repositório, se desejado.
- getFileModificationValidator - responde com um IFileModificationValidator
apropriado para o provedor. Esse gancho permite que os provedores verifiquem previamente
quaisquer modificações ou gravações em arquivos. Esse gancho é normalmente necessário
quando um provedor de repositório deseja implementar criação de versões pessimista.
Numa criação de versões pessimista, um arquivo deve ter sua saída registrada antes de ser modificado
e apenas um cliente pode registrar saída de um arquivo em um dado momento.
A criação de versões pessimista poderia ser implementada pelo registro de saída de um arquivo (se já
não estiver com a saída registrada) sempre que um arquivo for editado e registrando a entrada do
arquivo quando ele for salvo. Como o CVS utiliza um esquema de criação de versões otimista,
este gancho não é implementado.
