Precisa adicionar um pouco a isso (e @GoodEnoughs):
mas isso parece apenas um pequeno incômodo para o controle de versão distribuído.
Enfaticamente não - o que uma compilação de "servidor" faz é dizer que seu tronco construirá e passará seus testes mais ou menos a partir da limpeza (menor é a quantidade de configuração que você precisa fazer no seu ambiente).
Estou pensando em mudar para o DVCS, mas mesmo tendo feito isso, você arrastará minha integração contínua das minhas mãos frias e mortas.
Para dar um exemplo simples: você está desenvolvendo o recurso "a", ele está desenvolvendo o recurso "b" distribuído ou não em algum momento, é necessário juntar tudo - se, ao confirmar, você esquecer de adicionar um arquivo que o aplicativo criará na sua máquina, mas não em nenhum outro lugar. Portanto, quando você envia a compilação para o seu "tronco", a integração contínua será acionada e a compilação falhará e você saberá, esperançosamente, antes que alguém insira seu código não tão completo, você poderá executar as etapas.
Se você estiver trabalhando em um projeto com vários desenvolvedores, poderá definir de onde vêm as versões - o tronco em vigor - isso é verdade independentemente de como o controle de versão funciona.
Se você adicionou um recurso - especialmente um do qual as outras pessoas dependem - para ter certeza de que, quando pressionado para "viver", ele cria e passa nos testes em outro lugar que não o seu ambiente de desenvolvimento é enorme. Mais do que isso, implanto a partir de compilações do meu servidor de compilação - é o tipo de como se especifica a compilação "definitiva". Por fim, terei compilações de implantação acionadas pelo usuário. A sua não é bom dizer que você pode trabalhar em volta dele - você não pode se você precisar dele (e eu ter mexidos caixas dev redondos em um escritório para encontrar e comprometer os arquivos ausentes).
Tudo isso é um pouco forte? Não sei - mas meu servidor de compilação é uma daquelas coisas que, após obter, não desejo retribuir.