Download Nome - svnbook-pt-br

Transcript
Tópicos Avançados
Agora considere o mesmo website desenvolvido de forma a fazer uso das propriedades de arquivo
do Subversion. Imagine ter um único arquivo de imagem, image123.jpg, e então propriedades
definidas neste arquivo chamadas caption, datestamp, ou mesmo thumbnail (respectivamente
para a legenda, data e hora, e miniatura da imagem). Agora sua cópia de trabalho parece muito mais
gerenciável—de fato, numa primeira visualização, não parece haver nada mais além dos arquivos de
imagem lá dentro. Mas seus scripts de automação sabem mais. Eles sabes que podem usar o svn
(ou melhor ainda, eles podem usar a linguagem incorporada ao Subversion—veja “Usando as APIs”)
para para extrair as informações extras que seu site precisa exibir sem ter que lê-las de um arquivo de
índices nem precisar de preocupar em estar manipulando caminhos dos arquivos.
As propriedades personalizadas de revisões também são freqüentemente usadas. Um de seus usos
comuns é uma propriedades cujo valor contém um recurso de ID de rastreamento ao qual a revisão
está associada, talvez pelo fato de a alteração feita nesta revisão corrigir um problema relatado
externamente com aquele ID. Outros usos incluem a inserção de nomes mais amigáveis à revisão—
pode ser difícil lembrar que a revisão 1935 foi uma revisão testada completamente. Mas se houver,
digamos, uma propriedade resultado-dos-testes nesta revisão com o valor todos passaram,
esta á uma informação bem mais significativa de se ter.
Procurabilidade (ou, Porque Não Usar Propriedades)
Para algo com tamanha , as propriedades do Subversion—ou, mais precisamente, as interfaces
disponíveis para elas—têm uma grande falha: apesar de ser simples criar uma propriedade
específica, procurar esta propriedade posteriormente são outros quinhentos.
Tentar localizar uma propriedade específica de uma revisão geralmente envolve executar uma
busca linear ao longo de todas as revisões do repositório, perguntando para cada revisão, "Você
tem a propriedade que eu estou procurando?" Tentar encontrar uma propriedade versionada é
complicado, também, e quase sempre envolve um recursivo svn propget ao longo de toda a
cópia de trabalho. Esta situação pode até não ser tão ruim quando uma busca linear por todas as
revisões. Mas certamente deixa muito a desejar tanto em termos de performance quanto mesmo
da probabilidade de sucesso, especialmente se o escopo de sua busca envolver uma cópia de
trabalho da raiz de seu repositório.
Por este motivo, você deve escolher—especialmente no caso de propriedades de revisões—entre
simplesmente adicionar seus metadados na mensagem de log da revisão, usando algum padrão
de formatação (talvez até a partir de ferramentas de programação) que permita uma filtragem
rápida a partir da saída do comando svn log. É bastante comum de se ver mensagens de log
do Subversion parecidas com:
Issue(s): IZ2376, IZ1919
Reviewed by: sally
Isto corrige um erro de falha de segmentação no gerenciador de processos
…
Mas isto resulta em outra dificuldade. O Subversion não provê ainda uma mecanismo de modelos
para mensagens de log, que poderia ajudar bastante os usuários a manter consistentemente o
formato de seus metadados incluídos em suas mensagens de log.
Manipulando Propriedades
O comando svn oferece algumas poucas maneiras de se adicionar ou modificar propriedades de
arquivos e diretórios. Para propriedades com valores pequenos, legíveis por humanos, talvez a forma
mais simples de se adicionar uma nova propriedade é especificar o nome e o valor da propriedade na
linha de comando com o subcomando propset.
39