Perforce è valido per la fusione come DVCS?

5

Ho sentito che Perforce è molto bravo a fondere, immagino che questo abbia a che fare con il tenere traccia dei cambiamenti sotto forma di elenchi di modifiche in cui è possibile aggiungere differenze su più file in un colpo solo. Penso che questo implichi che Perforce raccolga più metadati e quindi abbia più informazioni per fare una fusione più intelligente (almeno più intelligente di Subversion, essendo Perforce centralizzata).

Poiché questo è simile a come Mercurial e Git gestiscono i cambiamenti (so che i DVCS tracciano il contenuto piuttosto che i file), mi chiedevo se qualcuno sapeva quali fossero le sottili differenze che rendono Perforce migliore o peggiore di un DVCS come Mercurial o Git.

    
posta dukeofgaming 12.10.2012 - 04:35
fonte

2 risposte

6

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.

    
risposta data 12.10.2012 - 05:43
fonte
2

Dipende da come usi Perforce. Ho visto l'approccio "ognuno ha un ramo" e "tutti usano lo stesso approccio". Ho lavorato come tecnico di rilascio in una società che usava il precedente approccio e non ha mai avuto problemi.

    
risposta data 12.10.2012 - 13:40
fonte

Leggi altre domande sui tag