wiki 如何处理多个同时编辑?

2024-03-29

这件事一直萦绕在我的脑海里,所以我想我还是去问问吧。

wiki 如何处理对同一内容的多次编辑?

这是我所要求的一个简单的例子。假设一个页面包含以下内容:

我是一页!

现在假设有两个人去编辑该页面。每人加一句话:

第一个人:

我是一页!
我是同一页的第二句话!

第二个人:

我是一页!
我是第二句话!

想象每个人的第二句话是关于每个人想要添加的页面主题的同样相关但不同的事实。

现在,假设第一个人在第二个人之前提交更改,但第二个人甚至没有机会看到第一个人所做的更改。当第二个人最终提交时,他的更改会覆盖第一个人的更改吗?

是否有可用于此目的的差异/合并算法?


我相信维基百科使用一个相当简单的差异/合并 http://meta.wikimedia.org/wiki/Help:Edit_conflict算法,类似于大多数源代码控制软件的做法。

在您给出的示例中,它会引发合并冲突错误,因为它无法知道最终标记中哪一行应该排在第一位。第二个保存更改的人将看到一个合并错误页面,他们必须在其中选择如何解决冲突。

但请记住,维基百科处于并发用户规模的高端。对于大多数 wiki,使用非常简单的“最后保存获胜”算法可能是可以接受的,其中第二个人的编辑简单地覆盖第一个人的编辑。添加历史记录后,第一个人应该很容易发现他们的更改已被覆盖并再次将其添加回来。

我相信 Stack Overflow 使用的就是这个解决方案。 SO 有一个附加功能,如果其他人进来并在完成之前修改页面,则使用 Ajax 调用来通知编辑器。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

wiki 如何处理多个同时编辑? 的相关文章

  • 如何在data.table中使用OR条件连接表

    在 data table 中是否可以使用 OR 条件连接表 例如 library data table X lt data table x c a b c d e f y c 1 1 2 2 3 3 z c 10 11 12 13 14 1
  • 使用“合并修订范围”从分支合并到主干

    我已经像这样在 Subversion TortoiseSVN 中合并了几次 方法一 1 我更改主干并提交 2 我在分支中进行其他更改并提交 3 在主干的工作副本中 我使用 TortoiseSVN 从分支合并 合并一系列修订 4 然后我提交主
  • 将更改从通用差异导入 git 存储库

    我正在尝试将更改从一个源代码控制系统 专有且复杂 导入到 git 存储库中 我目前正在通过运行一个脚本来执行此操作 该脚本只是按顺序同步到每个修订版并将其提交到 git 存储库 但由于各种原因 这已变得不可行 对于每个修订版 我都可以获得描
  • 从关系数据库中“区分”对象

    我们的 win32 应用程序根据 MySQL 关系数据库中多个表中的数据组装对象 对于这样的对象 多个修订版本存储在数据库中 当存储某些内容的多个修订版本时 迟早您会问自己这样的问题 您是否可以想象两个修订版本之间的差异 所以我的问题是 比
  • “git merge --squash”的正确用例是什么?

    有些人喜欢git merge squash由于以下原因 压缩到单个提交使您有机会清理混乱的 WIP 提交 并为您要合并的更改提供良好的理由 https coderwall com p qkrmjq git merge squash http
  • 显示 GitHub 上二进制文件的文本差异

    我正在尝试使用 Git 和 GitHub 同步多个应用程序配置文件 这些是以二进制格式存储的 XML 或 plist 文件 例如 一个键盘大师 kmsync file https forum keyboardmaestro com t pl
  • 从“git diff”中排除文件

    我正在尝试排除一个文件 db irrelevant php 来自 Git diff 我尝试将文件放入db子目录名为 gitattributes与线irrelevant php diff我还尝试创建一个名为 git info attribut
  • SQL Server 差异工具

    在一个团队中工作时 人们很容易修改开发 SQL Server 表并忘记它 或者准备部署更改但必须等待部署 这使得我们的开发表和活动表不一致 从而在推送存储过程时导致问题 是否有一个工具可以让我输入 SPROC 名称并让它检查开发数据库和实时
  • PHP:合并/添加多维数组?

    假设我有几个具有相同结构的多维数组 如下所示 basketA fruit apple 1 basketA fruit orange 2 basketA fruit banana 3 basketA drink soda 4 basketA
  • Neo4j 中合并和创建唯一之间的区别

    我试图找出合并和创建唯一之间的区别 我知道这些功能 合并 如果不存在模式 我可以创建节点 MERGE n name X RETURN n 这将创建具有属性名称的节点 n 空节点 m 和关系 RELATED MERGE n name X RE
  • 使用输出在合并语句中设置变量

    我有一个合并语句应该始终更新或插入一条记录 我想记住变量中该语句的 ID 它看起来像这样 DECLARE int int MERGE dbo table AS A USING SELECT stringtomatch AS string A
  • Git 命令查找哪些分支合并到当前分支以及何时合并

    我有几个功能分支正在自动合并到集成分支中 我想知道这种情况是否以及何时发生 我可以打字git log这将向我显示合并已经发生 但由于某种原因 它没有向我显示来自哪个功能分支 它只是说 将integration branch合并到integr
  • svn diff 或 git diff 中带有 at 符号的“@@...@@”元行是什么意思?

    当我使用svn diff or git diff它显示如下行 1 5 1 9 他们的意思是什么 这些称为 c hunk 标头并包含范围信息 它们周围有双标志 它们的格式如下 l s l s where l是起始行号并且s是 c hunk 应
  • 基于公共列合并数据帧,但保留 x 中的所有行[重复]

    这个问题在这里已经有答案了 我需要合并两个数据框x and y其中有大约 50 列公共列和一些独特列 我需要保留所有行x 如果我运行它会起作用 NewDataframe lt merge x y by c ColumnA ColumnB C
  • 仅当值不同时 Postgres UPSERT(插入或更新)

    我正在更新 Postgres 8 4 数据库 来自 C 代码 基本任务非常简单 更新现有行或插入新行 如果尚不存在 通常我会这样做 UPDATE my table SET value1 newvalue1 updated time now
  • 联合超过 2 个 pandas 数据框

    我正在尝试将 sql 查询转换为 python sql语句如下 select from table 1 union select from table 2 union select from table 3 union select fro
  • 如何以统一的 diff 格式打印两个多行字符串的比较?

    您知道有什么图书馆可以帮助做到这一点吗 我会编写一个函数 以统一的 diff 格式打印两个多行字符串之间的差异 像这样的东西 def print differences string1 string2 Prints the comparis
  • 使用 XSLT 根据属性值合并 2 个 XML 文件?

    文件1 xml
  • Perforce Excel 文件差异

    我有一堆 excel 文件放在 perforce 上 我想对这些 excel 文件进行 diff 类似于我在 perforce 中对其他文件 如 java cs 等 所做的操作 我尝试寻找一个插件 发现 P4OFC 只适合对 word 文件
  • 如何让 Gitlab 运行程序在成功构建时将代码合并到分支中

    嗯 标题几乎是不言自明的 总之 如果构建成功 我希望将一个分支 即开发 合并到另一个分支 即生产 我尝试了 jakub kania 解决方案 但我总是得到id rsa invalid format 我认为 gitlab 秘密变量以某种方式被

随机推荐

  • 软键盘打开时调整布局

    我在某些应用程序中看到 当显示软键盘时布局会发生变化 这当然不是adjustPan因为整个布局 可能是内部布局 发生了变化 而不仅仅是当前的EditText 例如 这是在 Evernote 登录屏幕中 你能建议一下这是怎么做的吗 下面是一个
  • 如何获取 Webview iframe 链接来启动浏览器?

    我正在使用 WebView 来显示一个页面 其中 html 包含一个 iframe 其中 src xxxxx php 该 iframe 作为带有底层链接的广告图像加载 如果我单击该图像 链接 它会尝试在原始 iframe 中加载新页面 在那
  • 为什么建议将实例变量声明为私有?

    我的问题与Java有关 但它也可以应用于C 我想知道为什么每个人都建议创建实例变量private而不是制作它们受保护的 我们想一想 子类看不到私有变量 因此如果我需要访问或更改子类中超类的变量 我被迫使用一些访问器和修改器方法 例如getM
  • 将 Windows Phone 7 应用程序中的图像文件上传到 PHP

    我正在尝试从图片库 在 WP7 上 上传图片并将其保存在服务器上的文件夹中 在服务器上 我使用 PHP 通过 POST 方法接收文件 PHP 代码是
  • 在 fortran 中生成序列数组

    Fortran中是否有一个内在函数可以生成一个包含从a到b的数字序列的数组 类似于python的range gt gt gt range 1 5 1 2 3 4 gt gt gt range 6 10 6 7 8 9 不 没有 但是 您可以
  • 获取完整的正在运行的进程列表(Visual C++)

    我目前正在使用 EnumProcesses 函数来获取正在运行的进程的列表 然而 由于我的应用程序在用户空间中运行 因此它无法获取不在用户下运行的进程 包括系统进程 的句柄 是否有其他方法可以让我访问这些内容 我所需要的只是进程名称 只是为
  • Android:减少 GridView 中列之间的空间

    请参阅随附的屏幕截图 其中我试图减少 GridView 中列之间的空间 我的main xml如下
  • SQL 选择一行并存储在 SQL 变量中

    所以 我正在编写这个存储过程 但我对 SQL 真的很烂 我向你们提出的问题是 我可以选择整行并将其存储在变量中吗 我知道我可以做类似的事情 declare someInteger int select someInteger select
  • 日期时间格式和时区

    当尝试解析日期时DateTime createFromFormatPHP 将无法识别时区 Example t new DateTime echo t gt format Y m dTH i s 将输出 2012 01 24MSK16 53
  • Rails 控制台错误需要'./example_user'

    我正在使用 Railstutorialhttp ruby railstutorial org chapters rails flavored ruby sec a user class http ruby railstutorial org
  • sqlite get 字段超过 2 MB [重复]

    这个问题在这里已经有答案了 当我尝试从 SQlite 获取数据且字段大小超过 2 MB 时 它会抛出异常 Couldn t read row 0 col 0 from Cursor Window Make sure the Cursor i
  • .Net TPL:具有任务优先级的有限并发级别任务调度程序?

    我目前正在使用 LimitedConcurrencyLevelTask Scheduler 详细信息请参见此处http msdn microsoft com en us library ee789351 aspx http msdn mic
  • 当应用于基本类型时,通过引用进行 const 调用是否会提高性能?

    对于对象 尤其是字符串 按引用调用比按值调用更快 因为函数调用不需要创建原始对象的副本 使用const 还可以确保引用不被滥用 我的问题是 如果使用基本类型 如 bool int 或 double const 按引用调用是否也会更快 voi
  • 在多个环境中执行编码的 UI 测试

    现在 我的编码 UI 测试使用它们的 app config 来确定它们执行的域 该域与环境具有 1 1 关系 为了简化它 测试网 www UAT com www prod com 在 App config 中我有类似的内容
  • Mathematica 什么时候创建新符号?

    再会 我早些时候以为数学在当前符号中创建新符号 Context在转换输入字符串的阶段 即分配给InString 来输入表达式 即分配给In 但一个简单的例子打破了这一解释 In 1 f During evaluation of In 1 I
  • 在 .NET Core 3.0 中加载 exe 时出现错误的 IL 格式

    我有两个 NET Core 3 0 WPF 项目 其中之一 我发布到一个名为 DefaultPlugin exe 的可执行文件中 在我的第二个 WPF 项目中 我尝试使用 Assembly Load 加载第一个项目并读取类型 但是 当我这样
  • 根据android中图表引擎饼图中的屏幕大小标记文本大小

    我成功使用图表引擎显示饼图 我想根据屏幕尺寸自定义标签文本大小 提前致谢 这个问题归结为解决问题 achartengine 的设计似乎考虑到了原始像素 而显示质量和像素密度在过去几年中显着提高 achartengine 示例中的标签在我的
  • LESS mixin 变量类名

    我正在使用 Font Awesome 4 0 0 并且想要在 LESS 中执行类似的操作 btn github btn btn primary margin left 3em i fa css prefix fa css prefix gi
  • 在C++中,如何读取一个文本文件的内容,并将其放入另一个文本文件中?

    我想阅读a的内容input txt文件并将其放入output txt文件 我尝试在下面的代码中执行此操作 但没有成功 我是新手C 文件操作 你能告诉我该怎么做吗 include
  • wiki 如何处理多个同时编辑?

    这件事一直萦绕在我的脑海里 所以我想我还是去问问吧 wiki 如何处理对同一内容的多次编辑 这是我所要求的一个简单的例子 假设一个页面包含以下内容 我是一页 现在假设有两个人去编辑该页面 每人加一句话 第一个人 我是一页 我是同一页的第二句