Usando Monitores

Um monitor é o nome convencional para a característica do CVS de notificar usuários do repositório sempre que um arquivo for mudado ou um desenvolvedor iniciar a edição de um arquivo. O uso de monitores requer que o arquivo $CVSROOT/CVSROOT/notify tenha sido configurado corretamente. Isto não será discutido aqui, se você necessitar de mais informações sobre a configuração de pontos de monitoramento, leia um dos livros listados no apêndice.

O principal suporte de monitores do Cervisia possui seis itens de menu.

Para adicionar um monitor para um ou diversos arquivos, use AvançadoAdicionar Monitor.... No diálogo obtido, você pode selecionar para quais tipos de eventos que o CVS suporta você deseja receber uma notificação. Por exemplo, se você somente quer receber notificações quando um arquivo é enviado, habilite as caixas Somente e Envios. Se você deseja obter notificações sobre qualquer evento relacionado aos arquivos marcados, habilite a caixa Todos. A linha de comando usada quando você aceita este diálogo é

cvs watch add -a commit nomes dos arquivos

ou com uma opção similar, dependendo dos eventos que você escolher monitorar.

Se você não está mais interessado em alguns arquivos, você pode remover os monitores deles. Para isto, use AvançadoRemover Monitor.... No diálogo obtido aqui, as mesmas opções no formulário preenchido para adição são oferecidas. Quando você confirmar este diálogo, o Cervisia enviará o comando

cvs watch remove nomes dos arquivos

possivelmente com uma opção -a para a escolha dos eventos.

Finalmente, você pode obter uma lista das pessoas que estão monitorando um conjunto de arquivos. Escolha AvançadoMostrar Monitores. Usar este item de menu resultará em um comando

cvs watchers nomes dos arquivos

No cenário normal de utilização do CVS, cada desenvolvedor trabalha separadamente em sua cópia local sincronizada. Quando ele deseja modificar algum arquivo, ele pode apenas abri-lo em seu editor e iniciar seu trabalho. Ninguém saberá sobre este trabalho até o arquivo ser enviado.

Para alguns grupos de desenvolvedores, este não é o modelo preferido de cooperação. Eles preferem ser notificados sobre alguém trabalhando em um arquivo tão logo ele inicie. Isto pode ser obtido por alguns comando CVS posteriores. Antes de você iniciar a edição de um arquivo, selecione-o na janela principal do Cervisia e escolha AvançadoEditar Arquivos. Isto executará o comando

cvs edit nomes dos arquivos

Isto enviará uma notificação para todos que tem configurado um monitor de edição no arquivo. Isto também registrará também você como um editor do arquivo. Você pode obter uma lista de todos os editores de um determinado arquivo usando AvançadoMostrar Editores. Isto é equivalente a digitar na linha de comando

cvs editors nomes dos arquivos

Uma sessão de edição é automaticamente terminada quando você envia o arquivo afetado. Neste momento, uma notificação de cancelar edição é enviado para todas as pessoas que tem registrado o respectivo monitor no arquivo. É claro, algumas vezes você pode não desejar sincronizar o arquivo, mas cancela a sessão de edição e reverte para a versão anterior do arquivo. Isto é feito usando AvançadoCancelar Edição de Arquivos. Observe que o Cervisia não lhe pedirá por uma confirmação! Isto significa que se você usar este item de menu, todo seu trabalho feito desde o uso do AvançadoEditar Arquivos será perdido. Precisamente, o Cervisia usa a linha de comando

echo y | cvs unedit nomes dos arquivos

Até agora, só foi discutido o caso em que as edições e fins de edições são usadas voluntariamente pelos programadores. Além disso, o CVS suporta um modelo que obriga ao uso desses comandos. O comando responsável por mudar para esse modelo é o cvs watch on, o qual não será muito mais detalhado, porque é usado, na maior parte dos casos, pelo administrador do repositório. Contudo, a parte importante do ponto de vista do programador é que, quando o projeto obrigar às edições, as cópias de trabalho são extraídas apenas com permissões de leitura. Isso significa que você não poderá editar um arquivo por padrão (a menos que use truques do tipo do chmod). Só quando você usar a opção AvançadoEditar Arquivos, é que o arquivo poderá ser alterado. Ele será tornado de novo acessível apenas para leitura quando você enviar as alterações ao arquivo ou quando usar a opção AvançadoCancelar Edição dos Arquivos.

A interface do editor do Cervisia lhe auxilia com projetos que forçam monitores também de diferentes maneiras. Se você apenas iniciou um editor com um arquivo apenas para leitura com um duplo-clique nele ou usando ArquivoEditar, você pode não ser capaz de salvar suas modificações posteriormente. Isto tem sua própria razão. Sempre que você deseja mudar um arquivo, você deve executar cvs edit antes, de modo que todas as pessoas monitorando o arquivo recebem uma notificação que você está trabalhando nele.

Neste caso, é conveniente habilitar a opção ConfiguraçõesExecutar cvs edit Automaticamente Quando Necessário. Agora, sempre que você editar um arquivo com um duplo clique nele, o Cervisia executará cvs edit antes do editor ser executado. Então você poderá editar seu arquivo normalmente. Quando tiver terminado seu trabalho, envie seus arquivos, e os arquivos enviados serão somente leitura novamente.