Sempre concordei com o mantra 1 do Mercurial , no entanto, agora que o Mercurial vem com a extensão rebase e é uma prática popular no git, estou me perguntando se poderia realmente ser considerado uma "má prática", ou pelo menos ruim o suficiente para evitar o uso. De qualquer forma, estou ciente de que rebasar é perigoso depois de empurrar.
OTOH, vejo o ponto de tentar empacotar 5 confirmações em uma única para torná-la mais interessante (especialmente em um ramo de produção); no entanto, pessoalmente acho que seria melhor poder ver confirmações parciais em um recurso em que alguns a experimentação é feita, mesmo que não seja tão bacana, mas ver algo como "Tentei fazer do jeito X, mas não é tão ótimo quanto Y, afinal, fazer Z tomando Y como base" IMHO teria um bom valor para aqueles que estudam a base de código e siga a linha de pensamento dos desenvolvedores.
Meu ponto de vista muito opinativo (como no idiota, visceral, tendencioso) é que os programadores gostam de rebase para esconder erros ... e eu não acho que isso seja bom para o projeto.
Então, minha pergunta é: você realmente achou valioso ter tais "commits orgânicos" (ou seja, história intacta) na prática? Ou, inversamente, você prefere ter compromissos bem organizados e desconsiderar o processo de experimentação dos programadores ?; o que você escolher, por que isso funciona para você? (ter outros membros da equipe para manter o histórico ou, alternativamente, refazê-lo).
1 por análise do Google DVCS , no Mercurial "History is Sacred".