Welche Methoden haben Wikis für die Zusammenführung gleichzeitige Bearbeitungen verwenden?

StackOverflow https://stackoverflow.com/questions/223040

  •  03-07-2019
  •  | 
  •  

Frage

Wenn zwei Benutzer das gleiche Wiki-Thema bearbeiten, welche Methoden haben in Wikis (oder in ähnlicher kollaborativen Bearbeitungssoftware) verwendet worden, den zweiten Benutzers Änderungen mit dem ersten zusammenführen?

Ich möchte eine Lösung, die:

  • erfordert keine Sperren
  • verlieren keine Ergänzungen der Seite.
  • Es kann extra „Standardtext“ hinzufügen, um anzuzeigen, wo unterschiedliche Änderungen vorgenommen wurden.

(Ich bin in einer Lösung interessiert, die verwendet werden könnten diese Uservoice Idee umzusetzen für Stapelüberlauf).

War es hilfreich?

Lösung

TWiki automatisch verschmilzt Gleichzeitige Edits .

  

TWiki ermöglicht mehrere gleichzeitige Bearbeitungen des gleichen Themas, und geht dann die verschiedenen Änderungen automatisch. Sie werden wahrscheinlich nicht einmal dies bemerken, es sei denn es einen Konflikt gibt, die nicht automatisch zusammengefügt werden können. In diesem Fall kann sehen Sie TWiki „Änderungsmarken“ in den Text einfügen Konflikte zwischen Ihren Änderungen zu markieren, und eine andere Person. Diese Änderungsmarken werden nur verwendet, wenn Sie den gleichen Teil eines Themas wie jemand anderes bearbeiten, und sie zeigen, was der Text verwendet, um aussehen, was die andere Person die Änderungen waren, und was Ihre Bearbeitungen waren.

     

TWiki wird warnen, wenn Sie ein Thema zu bearbeiten versuchen, dass jemand anderes Bearbeitung ist. Es wird auch warnen, wenn eine Zusammenführung beim Speichern erforderlich war.

Es gab auch einige Dokumentation von dieser Funktion detailliert entwickelt, wie es verhalten würde.

  

Die Grundprinzipien ich den mergeing Algorithmus bei der Codierung aufgebraucht waren:

     
      
  1. Wenn es möglich ist, ohne die Verwendung von Konfliktmarken fusionieren, dazu.
  2.   
  3. Wenn es möglich ist, mit Konfliktmarken fusionieren, dazu.
  4.   
  5. Wenn es nicht möglich ist, zu fusionieren, dann die neuesten checkin gewinnen.
  6.   

Es ist erwähnenswert, dass TWiki eine ähnliche Funktion hat zum Zusammen spätere Überarbeitungen Überlauf Stack durch denselben Nutzer innerhalb einer bestimmten Frist und diese verursacht einen Fehler, wenn sie in Verbindung mit einem Merge geschieht.

  
      
  1. Benutzer A bearbeitet Thema
  2.   
  3. Benutzer A speichert U N
  4.   
  5. Benutzer B bearbeitet Thema aufgreift rev N
  6.   
  7. Benutzer A bearbeitet Thema wieder aufgreift rev N
  8.   
  9. Benutzer A speichert Änderungen; Speicher sehen, dass die Änderung in der ReplceIfEditiedWithin ist? Fenster, so erhöht nicht die rev Zahl
  10.   
  11. User B speichert, Code sieht, dass die rev Zahl auf der Platte hat sich nicht geändert, da sie die Bearbeitung gestartet , so erkennt keine Notwendigkeit, zu fusionieren.
  12.   

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 ein Mietvertrag für das Thema für einen festgelegten Zeitraum (Standard 1h) genommen. Wenn jemand anderes zu bearbeiten versucht, wird ihnen gesagt, dass es bereits einen Mietvertrag für das Thema, aber das bedeutet nicht aufhören sie von der Bearbeitung. Es ist kein Schloss, es ist nur ein Weg, um sie zu beraten. Mergeing ist immer noch die prime Auflösungsmechanismus; Der Mietvertrag ist rein beratender. Wenn ein Benutzer - oder ein Plugin -. Wählt weg von einem Thema zurück, weil jemand einen Mietvertrag auf sie hat, na ja, das ist bis zu dem Plugin

     

Der beschreibende 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.

beachten Sie, dass die Leasing-Terminologie nur für Entwickler ist, nicht den Endnutzern.

Andere Tipps

Meine Erfahrung mit den meisten Wiki-Software (z MediaWiki) ist, dass es die Version des Dokuments verfolgt Sie bearbeiten. Wenn das Dokument Änderungen während Ihrer Zeit der Bearbeitung wird Ihre Änderung abgelehnt und Sie werden aufgefordert, eine manuelle Zusammenführung auszuführen.

Sie können in einer anderen Datenbanktabelle mit der ID des Benutzers und der Zeit, und löschen Sie das „Schloss“ ein „Schloss“ schreiben (das ist keine wirkliche Sperre für diejenigen, die nicht verstehen), wenn die Person speichern oder nach x Minuten.

Auf diese Weise, wenn jemand versucht, zu bearbeiten und schon jemand es zu tun. Eine Nachricht kann mit der Zeit erscheinen oder Rest nur um zu sagen, dass jemand anderes derzeit die Post bearbeitet.

Nun, könnten Sie ein Verschmelzen Algorithmus verwenden, wie die von der Quellcodeverwaltung Software verwendet. Sie würden wahrscheinlich wollen es auf der Absatzebene für Änderungen zu überprüfen, um die Lesbarkeit beizubehalten.

Wenn es ein potentieller Konflikt (zB zwei Benutzer denselben Absatz bearbeiten), werden Sie wahrscheinlich einfach benötigen würden beid Versionen mit vorformulierten Text präsentieren und / oder benachrichtigen die zweiten und die folgenden Einreicher, dass der Inhalt ihrer Post verändert hat aus was sie eingereicht.

Nun, ich denke, dass das eine schreckliche, schreckliche Idee wäre. Lassen Sie uns ehrlich sein: Verschmelzung in Code ziemlich heikel ist, und dass zumindest hat Elemente, die isoliert werden könnten. Dies nicht tun - die menschliche Intelligenz wird immer besser sein. Stattdessen versuchen Sie es mit einer automatischen Lösung zu ersetzen, die in der Ausgabe führen können, die nicht gesund, ohne Nutzen ist.

die TWiki Antwort Bei der Erforschung stolperte ich auch über SynchroEdit , die ein SubEthaEdit Stil browserbasierte gleichzeitiges Multi-User-Editor. Es sieht aus wie es um September 2007 aufgegeben worden sein, aber es gibt Quellcode zum Download zur Verfügung.

Für die Dokumentation willen: DokuWiki stellt 15 Minuten sperren auf bearbeitete Seiten, die, wann immer Sie erneuert wird Vorschau Ihrer Änderungen (dh. 15 Minuten von Ihrer Vorschau oder bearbeiten Start).

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