JA:Change rollback

From OpenStreetMap Wiki
Jump to navigation Jump to search

巻き戻しの変更とは破壊行為の対応策のひとつで、〈間違い編集〉を旧版のデータに戻します(不正行為ではないが処理ツールは同じ)。これをリバーとするとも呼びます。

削除の取り消し

削除限定の特例については Undoing deletions を参照。

ノードやウェイが少数の場合は編集機能で

JOSM

JOSM には〈取り消し〉機能があり、旧版に差し戻す対象の指定ができますが、プログラムにデータをダウンロードした時点までしかさかのぼれません。

JOSM のプラグインとして Undelete plugin があり、削除されたリレーション、ウェイ、ノードの削除取り消し(訳注:復元)ができます。これは手動で削除されたウェイ manually undelete node を元に戻します。

変更をアップロード済みの場合、別のプラグイン Reverter plugin によって変更セットの差し戻しができます。ただし細心の注意を払う必要があり - リバートの間違いにより他のマッパーの作業を台無しにしてしまう可能性があります(かつその結果の差し戻しをさらに困難にするからです)。自信がないなら連絡手段で応援を頼んでください(チャットルームIRC、「ヘルプ」ページもしくはメーリングリスト。)

リバートスクリプトで変更セットごと巻き戻す

変更セットとは特定のユーザーが固有の時間に実行した一連の変更のことです。問題のある変更一式を識別して処理するのに役立ちます(ノードの大幅な移動や破壊行為)。リバートスクリプト revert script は差し戻す対象を特定するために変更セットを使います。ところが変更セットの差し戻しは自動処理できないようにしてあります。データベースから除去された変更差し戻しの痕跡も自動では消えません。その代わり、まるで誰か人間が差し戻された変更セットを目視で検討した上で、変更済みの項目を手動で旧版の状態に復元したときと同じ成果をもたらすのが、リバートスクリプトの働きです。

Revert scripts には全件の変更セットを取り消しできるものの、処理の細部まで理解した人のみ実行するべきです。現実問題としてほとんどの人は誰かに依頼するか、もしくはスクリプトの執筆者に特定の分野に関してスクリプトを代行で走らせるように頼むべきです。なぜなら安全策がないスクリプトだからです。結果として破壊するかもしれないのだから、きちんと確信があるかどうか吟味してください。問題だと感じる編集が絶対に悪意もしくは偶発的に実行されたと言い切れない限り、これを実行してはいけません。少しでも自信がないなら、まず先にメーリングリストで話し合い、それから実施するべきです。

リバートがきれいか汚れているか

リバートがきれいとは、変更セット内のすべてのオブジェクトが特定期間に変更されていない場合を指します。その場合、差し戻し(リバート)は副作用を起こしません。汚れたリバートとはリバート対象に特定期間に変更されたデータを1件でもふくむ場合のことです。

現状では、リバートスクリプトは汚れたオブジェクトを既定でリバートしません(とは言ってもスクリプト内で可変)。詳細は2008年時点の変更セットとリバート案#リバート(英語版)ならびに Revert scripts をご参照ください。 JOSM 差し戻しプラグインは双方向的に汚れたリバートを処理し、効果的ではあるが時間を多く食う場合があります。

他のマッパーが問題発生後に編集を加えたデータは内在的にリバートが困難であり、それぞれのマッパーの変更点を細かく分析しなければなりません。意図したのは壊れたデータの「補修」だった(例=OSM 上で架空の道路と実存する道路を結ぼうとした)のか、実存する新規の特性を追加して OSM が取りこぼさないようにしたのでしょうか?

関連項目