Não há uma ferramenta comumente distribuída para fazer isso, então você terá que escrever o seu próprio. Gostaria de escrever um script Bash que chame indent
com parâmetros diferentes para criar um grande número de versões alternativas do arquivo de origem original e, em seguida, encontre a "melhor" saída diff
para cada versão alternativa, onde "melhor" pode ser simplesmente o menor número de linhas alteradas.
Minha experiência é que você pode particionar o problema se souber quem escreveu o código original. Os programadores tendem a adotar hábitos de formatação de longo prazo que diferem de programador para programador.
Você deve esperar que, mesmo nos melhores casos, os diffs que indent
introduzir tornarão o svn / git culpado de inútil. Isso provavelmente forçará você a adotar uma específica indent
policy para all do código e iniciar um novo repositório com código formatado automaticamente ou simplesmente abandonar o conjunto idéia. Um repositório com várias políticas indent
diferentes provavelmente causará mais confusão e agravamento do que benefícios.
Se você estiver trabalhando em um novo código e não apenas fazendo pequenas alterações no código existente, a melhor prática seria exigir que todos os colaboradores usem uma política indent
ou astyle
específica antes de enviar o código. Você também pode fazer isso automaticamente usando hooks no svn / git commit, mas isso pode causar erros de compilação ou até bugs em casos raros. Se você está trabalhando em uma organização e não está executando um projeto on-line onde você é o gatekeeper, você precisará de um gerente com autoridade suficiente para aplicar a política, já que a maioria dos programadores já sabe, com anos de experiência, que sua própria formatação é a única. maneira correta e todas as outras formatações são inválidas.