Frage

So habe ich an einem Wiki Typ Ort arbeiten. Was ich versuche zu entscheiden, was der beste Algorithmus für einen Artikel Zusammenführung, die von zwei Benutzern gleichzeitig bearbeitet wird.

Bisher ist ich unter Berücksichtigung der Dokumente mit Wikipedias Verfahren der Verschmelzung, wenn zwei unabhängige Bereiche bearbeitet werden, aber die älteren ändern, wenn zwei Commits Konflikt Wegwerfen.

Meine Frage lautet wie folgt: Wenn ich die Original-Artikel haben, und zwei Änderungen daran, was sind die besten Algorithmen, sie zu verschmelzen und dann mit Konflikten umgehen, wie sie entstehen?

War es hilfreich?

Lösung

Bill Ritcher ausgezeichnetes Papier " A Trustworthy 3-Wege-Merge " spricht über einige der gemeinsamen gotchas mit drei-Wege-Zusammenführung und cleveren Lösungen für sie, dass kommerzielle SCM-Pakete verwendet haben.

Die 3-Wege-Merge werden alle Änderungen automatisch anwenden (die nicht überlappen) von jeder Version. Der Trick ist, automatisch so viele fast überlappende Bereiche wie möglich zu behandeln.

Andere Tipps

Es gibt eine formale Analyse des diff3 Algorithmus, mit Pseudo-Code, in diesem Papier: http://www.cis.upenn.edu/~bcpierce/papers/diff3-short. pdf

Es ist unter dem Titel "A Formal Untersuchung von Diff3" und geschrieben von Sanjeev Khanna, Keshav Kunal und Benjamin C. Pierce von Yahoo.

Ehrlich gesagt, würde ich auf diff3 verlassen. Es ist auf so ziemlich jede Unix-Distribution, und Sie können immer bauen und eine Exe-Bundle für Windows, um sicherzustellen, ist es für Ihre Zwecke.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top