Alguns leitores me pediram para descrever quais arquivos eu incluo no controle de versão (no meu caso, Subversion).
Basicamente eu incluo tudo que não pode ser gerado automaticamente. Todo o código fonte, o script para criação do instalador, o script para criação do banco de dados, o script de build, o arquivo de projeto do gerador de help e manual, ícones e gráficos usados pelo aplicativo e algum arquivo com documentação técnica adicional.
Não incluo código de terceiros, como componentes e bibliotecas que não são mantidos por mim. Isso é uma opção minha, algumas pessoas controlam a versão de componentes de terceiros também. Eu não senti necessidade disso até hoje.
Agora existem arquivos que você realmente não deve incluir, pois são gerados a partir dos outros já inclusos. Exemplo: DCU, EXE, FDB (banco de dados Firebird), BPL, DLL, HLP, CHM, etc.
Claro que cada empresa tem uma realidade. Já vi gente que inclui até EXE no controle de versão. Eu acho absurdo. A melhor forma de decidir o que você vai incluir no controle de versão é saber exatamente a função de cada arquivo que você está incluindo e verificar se é realmente necessário.
TPodcast
5 Comments
Aqui temos um caso em que versionamos os componentes e as bpls. Tem ajudado a manter todos os desenvolvedores atualizados sem a necessidade de recompilar nada e permite a compilação dos aplicativos em uma máquina sem o Delphi inteiro. Colocamos os componentes em um repositório separado pois quase não há alterações neles. Quando há a necessidade de compilar com uma versão antiga a coisa fica fácil!
Erick, eu fui um dos que comentou sobre isto em um outro post seu. Ótimo post, porém você não tocou na ferida do controle de versões com o Delphi, os arquivos DOF e CFG.
São arquivos que possuem alguma configuração do projeto, bem como alguns caminhos que variam para cada desenvolvedor. Exemplo no .cfg:
-LE”C:\Documents and Settings\juracy\Meus documentos\Borland Studio Projects\Bpl” (será que com a ideia do Fabrizzio dá para melhorar isto?)
Claro que para outro usuário este caminho será diferente, porém neste mesmo arquivo há algumas opções importantes de compilação, search path (que eu uso relativo ao projeto), etc.
Alguma sugestão?
Juracy, minha sugestão é que você utilize variáveis de ambiente nestas configurações, de forma que cada desenvolvedor tenha seu caminho diferente, mas o DOF e CFG permanecem inalterados.
E você? coloca os DOF e CFGs no repositório ?
Os DOFs eu passei a incluir há muito pouco tempo, os CFGs não.