Atualmente, usamos o Subversion e o TeamCity, vamos usar o Mercurial (especificamente o Kiln como usuários do FogBugz).
Obviamente, isso resultará em mudanças - espero que melhorias - em nossos padrões de desenvolvimento (todos nós!), Mas o problema com o qual estou lidando é como estruturar as coisas para que ainda usufruamos dos benefícios da integração contínua / nosso servidor de IC ( que existem e permanecerão benefícios é um dado, cuja discussão está fora do escopo desta questão).
Com o SVN, estamos comprometidos com um número limitado de repositórios centrais - efetivamente um por projeto (mais ou menos uma solução do Visual Studio), para facilitar a criação de uma compilação e obter a garantia de que todos os arquivos foram confirmados e que não existem dependências perdidas etc, etc. Mas, se quisermos tirar o máximo proveito do mercurial, queremos ter mais instâncias de repositório - onde eu esperaria que as mudanças geralmente fluíssem em direção a um repositório definitivo "ao vivo". O problema com o qual estou lutando é que o repositório ao vivo parece estar "atrasado" demais para acionar minha criação de IC OTOH Uma criação de IC por projeto por desenvolvedor provavelmente é excessiva (e causa outros problemas).
I'm fishing a bit but that's because one of the things that a central subversion repo gives one (me, with our setup!) is a lot of clarity about what to build when.
n.b. I'm not asking about the mechanics of using mercurial with continuous integration - I have that working a treat for a personal project, its patterns and structures and working practice/workflow that I'm trying to get my head round.