TWiki verbindet automatisch Simultaneous Edits.
TWiki ermöglicht mehrere gleichzeitige Bearbeitungen des gleichen Themas und führt dann die verschiedenen Änderungen automatisch zusammen. Sie werden wahrscheinlich nicht bemerken, dass dies geschieht, es sei denn, es gibt einen Konflikt, der nicht automatisch zusammengeführt werden kann. In diesem Fall sehen Sie möglicherweise, dass TWiki "Änderungsmarkierungen" in den Text einfügt, um Konflikte zwischen Ihren Änderungen und denen einer anderen Person hervorzuheben. Diese Änderungsmarkierungen werden nur verwendet, wenn Sie den gleichen Teil eines Themas bearbeiten wie ein anderer, und sie geben an, wie der Text aussah, welche Änderungen vorgenommen wurden und welche Änderungen vorgenommen wurden.
TWiki warnt, wenn Sie versuchen, ein Thema zu bearbeiten, das jemand bearbeitet. Es wird auch gewarnt, wenn während eines Speichervorgangs eine Zusammenführung erforderlich war.
Es wurden auch einige documentation von dieser Funktion entwickelt, die ausführlich beschreibt, wie es sich verhalten würde.
Die Grundprinzipien ich den mergeing Algorithmus bei der Codierung aufgebraucht waren:
- Wenn es möglich ist, dies zu verschmelzen ohne Marker Konflikt zu verwenden, tun.
- Wenn es möglich ist, mit Konfliktmarkern zusammenzuführen, tun Sie dies.
- Wenn das Zusammenführen nicht möglich ist, gewinnt das letzte Einchecken.
Es ist erwähnenswert, dass TWiki eine ähnliche Funktion hat durch denselben Nutzer innerhalb einer bestimmten Frist und diese caused a bug when happening in conjunction with a merge zum Zusammen nachfolgenden Revisionen Überlauf zu stapeln.
- Benutzer A bearbeitet Thema
- Benutzer A speichert rev N
- Benutzer B Thema bearbeitet, nimmt rev N
- Benutzer A bearbeitet Thema wieder aufgreift rev N
- Benutzer A speichert Änderungen; save sieht, dass die Änderung innerhalb der ReplaceIfEditedWithin liegt? Fenster
- Benutzer B speichert, Code sieht, dass die Rev-Nummer auf der CD hat sich nicht geändert, seit sie bearbeitet, so dass keine Notwendigkeit zum Zusammenführen erkennt.
Erwähnenswert ist auch, dass TWiki den zweiten Benutzer warnen, dass das Thema bearbeitet wird:
So erfand ich das Konzept der „Leases“. Wenn ein Thema bearbeitet wird, wird für einen bestimmten Zeitraum eine Lease über das Thema ausgeführt (Standard 1h). Wenn jemand anderes versucht zu editieren, wird ihm gesagt, dass das Thema bereits verpachtet ist, aber das hindert sie nicht daran, es zu bearbeiten. Es ist kein Schloss, es ist nur eine Art, sie zu beraten. Merge ist immer noch der wichtigste Abwicklungsmechanismus; Der Mietvertrag ist rein beratend. Wenn ein Benutzer - oder ein Plugin - sich von einem Thema zurückzieht, weil jemand einen Mietvertrag hat, dann liegt das an dem Plugin.
Die beschreibenden Kommentar in TWiki.cfg ist wie folgt:
# When a topic is edited, the user takes a "lease" on that topic.
# If another user tries to also edit the topic while the lease
# is still active, they will get a warning. The warning text will
# be different depending on whether the lease has "expired" or
# not i.e. if it was taken out more than LeaseLength seconds ago.
zur Kenntnis, dass der Mietvertrag Terminologie nur für Entwickler ist, nicht den Endnutzern.
Warnung, dass ein anderer Benutzer bearbeitet, ist gut. TWiki tut in der Tat so etwas, so dass es Benutzer warnen kann, dass ein Thema bearbeitet wird, es ist nur, dass es ihnen erlaubt, es zu bearbeiten und zu speichern und versuchen wird, die Änderungen zusammenzuführen.Ich suche wirklich nach Lösungen, die versuchen, die zwei Änderungen zusammenzuführen. –