Pergunta

Recentemente, tenho procurado o estilo de seleção como parte de algumas pesquisas sobre convenções de codificação padrão. Embora pareça que seja perfeitamente adequado para novos projetos, parece ter uma enorme barreira à adoção de projetos já existentes, pois parece não fornecer um método de verificar apenas o código novo ou editado. Talvez eu esteja errado?

Se você possui uma base de código que nunca teve um padrão de codificação, pode ser um grande esforço para obter toda a base de código com um padrão de uma só vez. Permitir que isso seja feito de forma incremental ao longo do tempo, à medida que o código evolui naturalmente parece uma abordagem mais razoável. Mas não parece uma possibilidade no estilo de seleção.

Suponho que isso teria que ser um empate com um sistema de controle de origem para ser possível. Isso é possível com o estilo de seleção ou há outra ferramenta que pode fornecer essa funcionalidade?

Foi útil?

Solução

Até onde eu soube, o estilo de verificação deve analisar a fonte, sem considerar sua história ou revisões.

Para adicionar esse tipo de recurso, significa análise de estilo de seleção de script para alimentá-lo com o subconjunto exato dos arquivos que representam o delta.

Mas então, é provável que certos tipos de cheques falhem ou perdem em suas análises, como Verificação de código duplicado.

Portanto, para esse tipo de análise incremental, você não apenas precisa restringir o conjunto de fontes, mas também o conjunto de regras que deseja aplicar, pois algumas dessas regras só fazem sentido em todas as fontes.


Então, por que você não pode executar uma verificação completa em cada arquivo e depois filtrar os resultados com base nas alterações gerenciadas pelo seu sistema de controle de origem? Algo assim existe?

Não é do meu conhecimento, especialmente com plug -in como Eclipse-CS Para o Eclipse: eles analisam um arquivo, eles exibirão todos os avisos, mesmo que o controle de origem mencione o arquivo que não mudou desde uma determinada revisão.

Somente um script externo seria capaz de fazer isso:
O princípio é simples (embora possa ser um pouco lento no tempo de execução):

  • Para cada arquivo, faça um diferencial para verificar se a modificação foi feita
  • se sim,
    • faça um svn blame Anotar linhas com o número de revisão que continha a última alteração.
    • Em seguida, analise o arquivo com o estilo de verificação.
  • O script pode filtrar o aviso para que a linha seja atualmente modificada (ou para todas as linhas modificadas após uma determinada revisão).

Outras dicas

Nós desenvolvemos um Plug -in de estilo de seleção por SCM-manager, uma ferramenta para gerenciar repositórios Git, subversão e mercurial. Se ativado, é possível verificar o código -fonte comprometido em relação às suas regras de estilo de seleção. Se a verificação encontrou erros, a confirmação será abortada.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top