Depois de ler que sou um nerd do Subversion, por que devo considerar ou não o Mercurial, o Git ou qualquer outro DVCS .
Eu tenho uma pergunta de acompanhamento relacionada. Li essa pergunta e li os links e vídeos recomendados e vejo os benefícios, mas não vejo a mudança geral de mentalidade das pessoas.
Nossa equipe é formada por 8 a 10 desenvolvedores que trabalham em uma grande base de código composta por 60 projetos. Usamos o Subversion e temos um tronco principal. Quando um desenvolvedor inicia um novo caso do Fogbugz, ele cria um ramo svn, faz o trabalho no ramo e, quando termina, volta ao tronco. Ocasionalmente, eles podem permanecer no ramo por um longo período de tempo e mesclar o tronco ao ramo para captar as alterações.
Quando assisti Linus falar sobre pessoas criando um ramo e nunca mais fazê-lo, não somos nós. Criamos provavelmente de 50 a 100 agências por semana sem problemas. O maior desafio é a fusão, mas também ficamos muito bons nisso. Eu costumo mesclar por fogbugz case & checkin do que por toda a raiz do ramo.
Nunca trabalhamos remotamente e nunca fazemos ramos fora dos ramos. Se você é o único que trabalha nessa seção da base de código, a mesclagem no tronco ocorre sem problemas. Se alguém tiver modificado a mesma seção de código, a mesclagem poderá ficar confusa e você poderá precisar fazer alguma cirurgia. Conflitos são conflitos, não vejo como qualquer sistema poderia acertar a maior parte do tempo, a menos que fosse inteligente o suficiente para entender o código.
Depois de criar uma ramificação, a verificação a seguir dos arquivos com mais de 60k + leva algum tempo, mas isso seria um problema em qualquer sistema de controle de origem que usaríamos.
Existe algum benefício de qualquer DVCS que não estamos vendo que seria de grande ajuda para nós?