1人が書き換えている間、ロックをするのでしょうか?ロックしないのであれば、片方が編集を開始した後の別の人が編集をして、その別の人が先に編集を終了した場合のリビジョンの管理は、どのようになっているのでしょうか?
Wikiはもともと簡単なツールとして作られているので、
厳密なリビジョン管理機能などないものが多いと思います。
そこで質問の件ですが、
(1)Aさんが編集を開始後、
(2)Bさんが編集を開始、
(3)Aさんが編集を終了、
(4)Bさんが編集を終了
したさいには、Bさんの編集終了時に、Aさんの編集した結果が、先行する更新としてBさんのブラウザに表示されます。
Bさんはこれを無視して書き込むなり、Aさんの編集内容を踏まえて統合したものを書き込むなり、選択できるようになっています。
編集履歴をとっているWikiの場合、リビジョンというか、Aさんの編集結果は編集結果として履歴に残りますが、枝分かれするようなことはないです。最終的にはBさんの編集結果が、最新の内容になり、そのひとつ前の状態として、Aさんの編集結果があるような形になります。
同時に2人の人が内容を書き換えようとした場合、どのように処理するようになっているのでしょうか?
システムに寄るが編集前のページのバージョンを記録するような仕組みにしておいて、
更新前に現在のバージョンが編集前のバージョンと一致しているかどうかを確認してから
更新処理を行うものが多いようだ。
ロックを取得するものもあるかもしれないが、Web システムという都合上ロック解除をどうするか
(編集中にページを閉じられたら?等)の問題があるので採用例は少ないように思う。
ごく簡単な実装としては「完全に同時に更新」と言う状況はほぼあり得ないので、後出しの方で
上書きしてしまうものもありだが。
ありがとうございます。そうすると、
(1)Aさんが編集を開始後、(2)Bさんが編集を開始、(3)Bさんが編集を終了、(4)Aさんが編集を終了
となった場合、最終版はAさんの編集結果で、Bさんの編集結果も一応リビジョンとしては残っているという形になるのでしょうか?
(1)Aさんが編集を開始後、(2)Bさんが編集を開始、(3)Aさんが編集を終了、(4)Bさんが編集を終了
となった場合は、Bさんの編集結果が最後で、Aさんのリビジョンは残るが、それは、Aさんが編集開始する時点からの編集としてリビジョンが記録されるという事でよろしいでしょうか?
Wikiはもともと簡単なツールとして作られているので、
厳密なリビジョン管理機能などないものが多いと思います。
そこで質問の件ですが、
(1)Aさんが編集を開始後、
(2)Bさんが編集を開始、
(3)Aさんが編集を終了、
(4)Bさんが編集を終了
したさいには、Bさんの編集終了時に、Aさんの編集した結果が、先行する更新としてBさんのブラウザに表示されます。
Bさんはこれを無視して書き込むなり、Aさんの編集内容を踏まえて統合したものを書き込むなり、選択できるようになっています。
編集履歴をとっているWikiの場合、リビジョンというか、Aさんの編集結果は編集結果として履歴に残りますが、枝分かれするようなことはないです。最終的にはBさんの編集結果が、最新の内容になり、そのひとつ前の状態として、Aさんの編集結果があるような形になります。
ありがとうございました。パーフェクトな回答です。
編集開始時刻を記録することで編集競合を警告する、というものがあります。
保存時に編集開始時刻と最初更新時刻を比較し、後者が前者より新しければ警告を出す…というものです。
ただし、競合を無視した編集強行を行ってしまえば当然、警告の効果はない…。
ありがとうございます
wikiソフトウェアによりますが、私の作ったものは編集箇所が(行単位で)近接していなければ自動的にマージするようにしています。原理はpatchコマンドやリビジョン管理ソフトのマージ機能と同じです。
編集箇所が重なっている場合は、後からsubmitした方に衝突が発生した旨と衝突箇所を表示して再編集してもらいます。
なるほど、そのような機能をつける方法もあるのですね。
ありがとうございました。パーフェクトな回答です。