编辑冲突的本质是MediaWiki对版本控制的需要,指的是多人对同一个页面在同一时间段提交了内容相互冲突的两次请求(即两次修改的内容有重合部分),在提交时,先提交者会正常保存,生成页面历史版本,后提交的人会触发“编辑冲突”,需要进行选择如何合并(merge)内容,才可以正常保存。

自动合并

MediaWiki在升级到1.28后,已经可以对多人同时编辑行为进行判断,如果两人在同一时间段进行的编辑行为没有任何重叠,或者后保存者的修改完全包含了先保存者的修改,后者在保存时不会触发“编辑冲突”。两次版本会相安无事,同时生效。


手动合并

1.28后,当触发编辑冲突后,新的冲突页面会自带内容比较功能,方便编辑者进行手动合并(merge) 冲突手动合并.png


编辑冲突的协调

上述内容是从程序机制上解释如何处理冲突,以下内容是从社区角度解释如何商讨和协调有争议的内容:

编辑者应以友好协商为第一准则。如果B只做了一些小修改,而A做出大的修改,B可以选择在A已经编辑过的版本上进行编辑,然后把自己的修改文字再合并进去。B可能增加一些文字诸如“因编辑冲突修改过”去提醒A和其他人,说明他不得不这么做——然后,A就可以回顾B合并的内容。

如果B作出了大量的修改,而A修改的内容相对较少,B可以继续在自己的版本中修改。作为可选的,B还可以把页面最底部的文字复制到顶部(如果B只编辑了一节,那么只复制那一节即可),最好再加上一个适当的编辑摘要(如“因编辑冲突修改过,将被合并”)。这样,B可以在历史页面中查看页面A的修改,再把A修改过的内容合并到他的版本。

如果B和A都进行了大量修改,问题就有点复杂了,B和A只能尽他们的最大努力做得更好。比如说,如果B和A同时对同一主题增加了一大段自己的文字,那么,B和A最好是都先提交自己所作出的修改,然后再看看比较比较两个版本,然后两个一起决定究竟哪个版本更好。

B不应该只把自己的修改提交后就不管了。在这里,我们假设大家都是好心的——但错误有时候是难免的,并且新来者可能不明白这种编辑冲突的版面。然而,B不能每次都忽略这种编辑冲突。如果B因为懒得管而把A所作出的修改的版本覆盖,这样做是绝对不能令人接受的。我们鼓励各位做贡献的维基人使用比较不同点功能,多多检查一下他们所做出的合并。

不容易发现的编辑冲突

还有一种无法被当前wiki程序检查到的编辑冲突,因此系统也无法发送“编辑冲突”的消息。

有些人喜欢这样编辑:

  1. 先把原文复制并粘贴到其他的文本编辑器中进行修改
  2. 对原文进行了很多更改(对文章结构进行重新组织、添加了新的内容等)。
  3. 然后,在他完成编辑之后,将整篇文章一次性粘贴回本网站的编辑窗口。

如果在此之间有人对这篇文章进行了小修改,那么在粘贴回之前,这些小修改将会丢失。因此,以拷贝到其他文本编辑器中进行修改的方式来编辑文章的用户,应该在保存后检查两个版本之间的不同,并且进行必要的合并。


不小心造成的错误

有时候在合并不同版本文章的过程中会发生错误。因为B只是个人,不可能像程序一样进行精确的检查,这样就可能导致A所作出的修改被意外的丢失。那种不容易发现的编辑冲突也不会立即可以看到。也有可能有时候B会有充分的理由觉得A的修改不是很有用,在这种情况下,我们期望A和B能友好地解决他们之间的不同意见。

如果A只作出小修改,而被B意外地弄丢了,那么A不能“恢复(或者说回退)”到她的版本。如果A将B所作出的很大的修改的页面回退到她自己的小修改的版本,以此来作为对自己的肯定或者对B粗心的惩罚,这是绝对让人无法接受的。尤其是这个页面又已经被其他人,如张三或李四已经又修改过。

对A来说,这种情况下最好的办法是在B的版本上进行编辑,将她自己的小修改再加进去,然后保持B所作的大的改动。如果可能的话,她也可以加上一些编辑摘要说明她不得不这么做——例如:“重新恢复被B搞丢了的文字”等。对B而言,他应当为自己的疏忽向A道歉,并且感谢A主动恢复她自己改动。

但是,如果B经常出现这样的错误,对A来说,较好的解决办法是在B的“讨论页”面中友好地留言,告诉B那些页面,并且友好地询问B能否在以后的编辑中稍微留意一下。这对根本不了解适当的方法以解决编辑冲突的新手来说尤其重要,更不用说即使是那些老手也希望别人善意地提醒自己。

回退时候的冲突

当保存一个先前的版本(亦即当回退的时候),或者在发生编辑冲突警告时,对被编辑过的版本的新的改动进行保存,以及在此期间可能又有新的非故意的回退作出的改动,这一切都可能出现编辑冲突。为了避免这种问题,可以从早先版本的编辑框中复制文本到最新的版本中。在某些意义上,这样又可能导致隐藏的编辑冲突:你可能没有意识到你现在所作的会覆盖其他人的更改。较为明智的做法是每次回退以后都对不同版本进行比较,就像系统提醒你有编辑冲突一下。最好是大家都尽量避免编辑战

回退

当保存一个以前的版本(即恢复时)或基于一个新的版本(修改后的回归)的编辑衝突预警和预防系统未触发,在此期间做了一个可能的新的编辑无意中也恢复,请参阅维基百科:如何恢复页面到较早的版本。为了避免这个问题,可以从旧版本的编辑框中的文本複製到最新版本的编辑框。在某种意义上,这可能会导致隐藏编辑衝突:你可能会覆盖其他人的更改,而没有意识到你正在这样做。它总是明智的执行复归后检查差异,就如同通过编辑衝突后发布。优选地,一个可以简单地尽量避免复归战争。

如何预防

可以加入“正在施工”模板,以提示此词条正被他人认领编辑。 如果自己认领词条后并没有充裕的时间编辑,请及时撤掉“正在施工”模板,以方便其他感兴趣的人参与。

模板代码:

{{正在施工|xxx|请多多指教}}

注:xxx为你的用户名

示例:

代码:

{{正在施工|yiyi|请多多指教}}

显示:

正在施工.jpg

参见