Muito bom, especialmente dado a competição perforce (cvs, svn, etc) durante a maior parte da sua vida, mas não, não tão bom quanto Git. Eu não posso falar com hg.
Embora algumas esta estejam fora da base (a prateleira p4 agora é um recurso antigo, não, você pode ' t fazer um dvcs se comportar como um vcs, e parece bobagem bater no p4 para o xcode droping support) os bits escolhidos sobre as dores de cabeça p4 mescladas são precisos.
Eu não acho que exista algo inerente a um sistema de controle de versão distribuído que torne sua fusão naturalmente superior a um sistema centralizado como perforce. Em vez disso, os modelos de dados adotados por muitos dvcs se prestam ao rastreamento superior de ramificação e mesclagem.
Impingir mapeamentos de ramificações? Uma alternativa incômoda aos ponteiros do GIT e abordagem gráfica dirigida.
Uma das principais vantagens do git over perforce - rastrear código por meio de refatoração - não tem nada a ver com o status do git como controle de versão distribuído, mas sim o fato de analisar arquivos e conteúdo como cidadãos de primeira classe. seu modelo de dados. Isso é completamente diferente de forçado , que mantém metadados abrangentes em seu banco de dados em um nível arquivo por arquivo: estado do arquivo, histórico, atributos, listas de alterações, enquanto o conteúdo do arquivo com versão é armazenado separadamente em uma hierarquia do sistema de arquivos.
Por último, e isso pode ser um pouco injusto, mas acho que, se um sistema de controle de versão precisa ter um recurso de bloqueio de arquivo, ele provavelmente não é bom para sua sofisticação de ramificação e mesclagem.Para um comparação tendenciosa de git vs. perforce (link arquivado). Eu também acho que dizer que necessariamente tem saltado no gitwagon.