Wikiでは、同時に2人の人が内容を書き換えようとした場合、どのように処理するようになっているのでしょうか?

1人が書き換えている間、ロックをするのでしょうか?ロックしないのであれば、片方が編集を開始した後の別の人が編集をして、その別の人が先に編集を終了した場合のリビジョンの管理は、どのようになっているのでしょうか?

回答の条件
  • 1人3回まで
  • 登録:
  • 終了:2008/11/25 21:37:11
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:nekonami No.2

回答回数17ベストアンサー獲得回数2

ポイント36pt

Wikiはもともと簡単なツールとして作られているので、

厳密なリビジョン管理機能などないものが多いと思います。

そこで質問の件ですが、

 (1)Aさんが編集を開始後、

 (2)Bさんが編集を開始、

 (3)Aさんが編集を終了、

 (4)Bさんが編集を終了

したさいには、Bさんの編集終了時に、Aさんの編集した結果が、先行する更新としてBさんのブラウザに表示されます。

Bさんはこれを無視して書き込むなり、Aさんの編集内容を踏まえて統合したものを書き込むなり、選択できるようになっています。

編集履歴をとっているWikiの場合、リビジョンというか、Aさんの編集結果は編集結果として履歴に残りますが、枝分かれするようなことはないです。最終的にはBさんの編集結果が、最新の内容になり、そのひとつ前の状態として、Aさんの編集結果があるような形になります。

id:tatsu7

ありがとうございました。パーフェクトな回答です。

2008/11/24 20:38:28

その他の回答3件)

id:b-wind No.1

回答回数3344ベストアンサー獲得回数440

ポイント22pt

同時に2人の人が内容を書き換えようとした場合、どのように処理するようになっているのでしょうか?

システムに寄るが編集前のページのバージョンを記録するような仕組みにしておいて、

更新前に現在のバージョンが編集前のバージョンと一致しているかどうかを確認してから

更新処理を行うものが多いようだ。


ロックを取得するものもあるかもしれないが、Web システムという都合上ロック解除をどうするか

(編集中にページを閉じられたら?等)の問題があるので採用例は少ないように思う。


ごく簡単な実装としては「完全に同時に更新」と言う状況はほぼあり得ないので、後出しの方で

上書きしてしまうものもありだが。

id:tatsu7

ありがとうございます。そうすると、

(1)Aさんが編集を開始後、(2)Bさんが編集を開始、(3)Bさんが編集を終了、(4)Aさんが編集を終了

となった場合、最終版はAさんの編集結果で、Bさんの編集結果も一応リビジョンとしては残っているという形になるのでしょうか?

(1)Aさんが編集を開始後、(2)Bさんが編集を開始、(3)Aさんが編集を終了、(4)Bさんが編集を終了

となった場合は、Bさんの編集結果が最後で、Aさんのリビジョンは残るが、それは、Aさんが編集開始する時点からの編集としてリビジョンが記録されるという事でよろしいでしょうか?

2008/11/24 19:26:13
id:nekonami No.2

回答回数17ベストアンサー獲得回数2ここでベストアンサー

ポイント36pt

Wikiはもともと簡単なツールとして作られているので、

厳密なリビジョン管理機能などないものが多いと思います。

そこで質問の件ですが、

 (1)Aさんが編集を開始後、

 (2)Bさんが編集を開始、

 (3)Aさんが編集を終了、

 (4)Bさんが編集を終了

したさいには、Bさんの編集終了時に、Aさんの編集した結果が、先行する更新としてBさんのブラウザに表示されます。

Bさんはこれを無視して書き込むなり、Aさんの編集内容を踏まえて統合したものを書き込むなり、選択できるようになっています。

編集履歴をとっているWikiの場合、リビジョンというか、Aさんの編集結果は編集結果として履歴に残りますが、枝分かれするようなことはないです。最終的にはBさんの編集結果が、最新の内容になり、そのひとつ前の状態として、Aさんの編集結果があるような形になります。

id:tatsu7

ありがとうございました。パーフェクトな回答です。

2008/11/24 20:38:28
id:Marine-Blue No.3

回答回数238ベストアンサー獲得回数12

ポイント9pt

編集開始時刻を記録することで編集競合を警告する、というものがあります。

保存時に編集開始時刻と最初更新時刻を比較し、後者が前者より新しければ警告を出す…というものです。

ただし、競合を無視した編集強行を行ってしまえば当然、警告の効果はない…。

id:tatsu7

ありがとうございます

2008/11/25 20:45:48
id:practicalscheme No.4

回答回数157ベストアンサー獲得回数42

ポイント23pt

wikiソフトウェアによりますが、私の作ったものは編集箇所が(行単位で)近接していなければ自動的にマージするようにしています。原理はpatchコマンドやリビジョン管理ソフトのマージ機能と同じです。

編集箇所が重なっている場合は、後からsubmitした方に衝突が発生した旨と衝突箇所を表示して再編集してもらいます。

id:tatsu7

なるほど、そのような機能をつける方法もあるのですね。

2008/11/25 20:46:37

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません