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