Molto buono, soprattutto data la concorrenza di perforce (cvs, svn, ecc.) per gran parte della sua vita, ma no, non buono come Git. Non posso parlare con hg.
Mentre alcuni dei questo sono off-base (lo scaffale p4 ora è una vecchia funzione, no, puoi farlo Per fare in modo che un dvcs si comporti proprio come un vcs, e sembra sciocco bussare a p4 per il supporto dell'archivio xcode) i bit di scelta su p4 i mal di testa sono accurati.
Non penso che ci sia qualcosa di intrinseco in un sistema di controllo della versione distribuito che rende la sua integrazione naturalmente superiore a un sistema centralizzato come perforce. Piuttosto, i modelli di dati adottati da molti dvcs si prestano a un ramo superiore e uniscono il tracciamento.
Perforce mappature delle filiali? Un'ingombrante alternativa ai puntatori di git e all'approccio del grafico diretto.
Un vantaggio chiave di git over perforce - il codice di tracciamento attraverso il refactoring - non ha nulla a che fare con lo stato di git come controllo di una versione distribuita, ma piuttosto il fatto che guarda sia i file che i BLOB di contenuti come cittadini di prima classe il suo modello di dati. Questo è completamente diverso da perforce , che mantiene estesi metadati nel suo database a livello di file per file: stato del file, cronologia, attributi, elenchi di modifiche, mentre il contenuto dei file con versione è archiviato separatamente in una gerarchia di file system.
Infine, e questo potrebbe essere un po 'ingiusto, ma ritengo che se un sistema di controllo delle versioni ha bisogno di una funzione di blocco dei file, probabilmente non è di buon auspicio per la sua sofisticata ramificazione e fusione.
Per un confronto parziale di git vs. perforce (link archiviato). Trovo anche che dice che perforce ha esso stesso saltato sul gitwagon.