Ok, aqui está algo que causou algum atrito no meu trabalho atual e eu realmente não esperava. O desenvolvimento de software interno organizado é um novo conceito aqui e eu fiz um primeiro rascunho de algumas diretrizes de codificação.
Propus que o código "comentado" nunca deve ser verificado no repositório. Afirmei isso porque o repositório mantém um histórico completo dos arquivos. Se você estiver removendo o código funcional, remova-o completamente. O repositório mantém suas alterações para que seja fácil ver o que foi alterado.
Isso causou certo atrito, pois outro desenvolvedor acredita que seguir esse caminho é muito restritivo. Este desenvolvedor gostaria de poder comentar algum código no qual está trabalhando, mas está incompleto. Este código, então, nunca teria sido verificado antes e não seria salvo em nenhum lugar. Vamos usar o TFS, então sugeri que arquivar as alterações seria a solução mais correta. No entanto, ele não foi aceito porque ele gostaria de poder fazer o check-in de alterações parciais que podem ou não ser implantadas.
Queremos eventualmente chegar a um ponto em que estejamos aproveitando ao máximo a integração contínua e implantando automaticamente em um servidor web de desenvolvimento. Atualmente não existe uma versão de desenvolvimento de servidores web ou servidores de banco de dados, mas tudo será alterado em breve.
Enfim, quais são seus pensamentos? Você acredita que o código "comentado" é útil ter no repositório?
Estou muito interessado em ouvir outras pessoas sobre este assunto.
Edit: Para fins de clareza, não usamos ramos privados. Se o fizéssemos, eu diria para fazer o que quiser com seu branch privado, mas nunca mesclar código comentado com o tronco ou qualquer branch compartilhado.
Editar: Não há nenhuma razão válida para não usarmos ramos privados ou por usuário. Não é um conceito do qual eu discordo. Nós apenas não configuramos dessa forma ainda. Talvez esse seja o meio-termo eventual. Por enquanto, usamos prateleiras TFS.