2009-07-29 7 views
26

Quindi ho lavorato su un sito di tipo wiki. Quello che sto cercando di decidere è quale sia l'algoritmo migliore per unire un articolo che viene contemporaneamente modificato da due utenti.Algoritmi di unione a tre vie per il testo

Finora sto considerando di utilizzare il metodo di Wikipedia per unire i documenti se due aree non correlate sono state modificate, ma buttare via il cambiamento più vecchio se due commit sono in conflitto.

La mia domanda è la seguente: Se ho l'articolo originale, e due modifiche ad esso, quali sono i migliori algoritmi per unirle e poi affrontare i conflitti che si presentano?

risposta

29

eccellente carta di Bill Richter "A Trustworthy 3-Way Merge" parla di alcuni dei grattacapi comuni con tre vie di fusione e soluzioni intelligenti a loro che i pacchetti di SCM commerciali hanno usato.

L'unione a 3 vie applicherà automaticamente tutte le modifiche (che non si sovrappongono) da ciascuna versione. Il trucco è gestire automaticamente il maggior numero possibile di regioni sovrapposte.

+0

Carta fredda, grazie per il collegamento! – icco

+0

Cambio l'URL perché quello che mi hai dato adesso è 404. Spero si riferisca ancora allo stesso articolo. – ChrisW

+0

Sì, è così. Grazie per l'aggiornamento! –

2

Francamente, mi affiderei a diff3. Si trova praticamente su tutte le distribuzioni Unix e puoi sempre creare e raggruppare un .EXE per Windows per assicurarti che sia lì per i tuoi scopi.