DQWiki:Edit conflict
This page discusses edit conflicts, and how to deal with them. To understand what an edit conflict is, consider the following situation:
- Alice clicks "Edit this page" on a page.
- Bob clicks "Edit this page" on the same page.
- Alice finishes her edits and clicks "Save page". The page is saved with Alice's version.
- Bob finished his edits and clicks "Save page". Bob gets an "edit conflict" page.
Layout of the edit conflict page
At the top is Alice's version of the whole page, even if Bob is doing section editing.
At the bottom is the text Bob was going to submit. This will be Bob's version of the page, if he edited the entire page, or Bob's version of the section he edited, if he was editing just one section.
In the middle is a diff of the two pieces of text. For the section Bob is editing it shows Bob's changes and Alice's possible changes, except what both have changed in the same way. For the other sections it shows the full new text as if all that text was added.
Bob can edit the upper text and press Save. In the case Bob was doing section editing this will be interpreted as the new version of the section, hence produce duplication of the other sections, unless Bob deletes them before saving. (This seems to be a bug.)
When pressing Save and the system is slow, one may be able to make another edit and press Save again before the system responds. This gives an edit conflict with oneself. In this case the upper text may be the old version instead of the one involving the first edit, i.e. the system notices the earlier change but has not processed it yet. A moment later. while one is looking at the edit conflict page, the first change is carried out in the background, and the upper text no longer is the current one. Hence, the diff shows the combined edit, and in the case of section editing, like before, the "addition" of the other sections.
Resolving an edit conflict
If Bob only made small changes, and Alice made large changes, he may choose to work from Alice's version, and re-merge his changes in. Bob might choose to add some text like "via edit conflict" to warn Alice and others that he had to do this - Alice can then peer review his merging for accuracy.
If Bob made large changes, and Alice made small changes, he may choose to work from his version. One option is for Bob to copy the bottom text into the top text (or just copy over the one section of the top text, if Bob was section editing), with an appropriate edit summary (eg "via edit conflict, will remerge"). Then Bob can view the page history, determine Alice's changes, and re-apply them to his version, in a separate edit.
If both Alice and Bob made large changes, matters become complicated, and Alice and Bob just have to do the best they can. For example, if both Alice and Bob simultaneously add a large section of text on the same subject, then it may be best for Bob to submit his changes, and then for Alice and Bob to both have a look at the two versions and decide between themselves which version is better.
Bob should not just post his changes over the top of Alice's. It is a good idea to double-check merges by using the history diff feature.
Logical edit conflicts
Some people edit by copying the source text into a text editor, making lots of changes (reorganising, adding new content, etc...), and then, when they're done, pasting the whole thing back onto the Wiki as a single edit. If someone else has made changes in the meantime these changes would get lost in the paste back. People who edit in this manner should check the page history for such edits, and merge the changes before pasting back.
Reverting
When saving a previous version (i.e. when reverting) or a new version based on that (a modified reversion) the edit conflict warning and prevention system is not triggered and a possible new edit made in the meantime is unintentionally reverted also. To avoid this problem one can copy the text from the edit box of the old version into the edit box of the latest version. In some sense, this can cause hidden edit conflicts: you may overwrite someone else's changes without realising that you are doing so. It's always wise to check the diff after performing a revert, just as you would after posting via edit conflict. Preferably, one can simply try to avoid reversion wars.
Prevention
Because edit conflicts are irritating and time-consuming, you may choose to alter your editing habits to render them less frequent: aiming to make more edits to pages that have not been edited recently, for example.
To reduce the chance of edit conflicts, DQWiki has "In Use" templates that people may use when editing a page over a long period of time. Simply put {{inuse}} on an article before proceeding with a major edit, and remove the template when the editing is complete.