履歴とロールバック
ページ履歴、差分表示、過去版へのロールバック
ページを保存するたびに、その時点の本文が リビジョン(Revision) として 記録されます。Crowi のページ本体は常に最新リビジョンを指しており、過去の リビジョンはすべて履歴として残ります。これにより「いつ・誰が・何を変えたか」 をあとから追跡し、必要なら過去の状態に戻すことができます。
リビジョンとは
リビジョンは 1 回の保存で 1 つ作られる、ページ本文のスナップショットです。 各リビジョンは次の情報を持ちます。
- ページのパス
- 本文(Markdown)
- 作成者
- 作成日時
- 保存者(
savedBy)と共同編集者(contributors)
savedBy と contributors はリアルタイム共同編集で保存したときに記録される
情報です。savedBy は「保存」ボタンを押したユーザー、contributors は
その保存サイクル中に同じページに居合わせたユーザーを表します。詳しくは
リアルタイム共同編集 を参照してください。
Note: Crowi 1.x で作られた古いリビジョンには
savedBy/contributorsがありません。その場合は従来どおり作成者(author)のみが 表示されます。
履歴を見る
ページの履歴は /_history?path=<ページパス> の履歴画面で確認できます。
履歴画面には、そのページのリビジョンが新しい順に一覧表示されます。
一覧の各行には以下が表示されます。
| 列 | 内容 |
|---|---|
| From / To | 差分比較する 2 つのリビジョンを選ぶラジオボタン |
| 編集者 | リビジョンの保存者。共同編集者がいる場合は併記されます |
| 作成日時 | リビジョンが作られた日時 |
| リビジョン | リビジョンの識別情報 |
共同編集で作られたリビジョンは、保存者と共同編集者が組み合わさって 「Alice(with Bob, Carol)」のように表示されます。
差分を表示する
履歴画面では、任意の 2 つのリビジョンを選んで 差分(diff) を表示 できます。
- 履歴画面を開くと、デフォルトで「最新リビジョン」と「その 1 つ前の リビジョン」が選択され、最も直近の変更がすぐに表示されます。
- From / To のラジオボタンで比較したいリビジョンの組を選び、「Compare」 ボタンを押すと、下部の差分ビューが更新されます。
- リビジョンが 1 件しかないページ(=作成後一度も更新されていないページ) では、最初のリビジョン単体が表示されます。
特定のリビジョンを直接開く
ページ URL の末尾に ?revision_id=<リビジョン ID> を付けると、
過去の特定リビジョンを直接表示できます。表示中のリビジョンが
最新リビジョンではない 場合、ページ上部に stale-revision
バナー が表示され、古いスナップショットを開いていることと、
最新版に戻るためのリンクが提示されます。
stale-revision バナーが出ているときは、プレゼンス行やページ操作 ツールバーといった「最新リビジョンに対してのみ意味がある操作」も 非表示になります。
?revision_id= は通常ページだけでなく ポータルページ(末尾が
/ のディレクトリページ)でも同じように働きます。ポータルを過去版で
開いたときも、ポータル本文の上部に同じ stale-revision バナーが表示
されます。
過去版へのロールバック
過去のリビジョンの内容に戻したい場合は、ロールバック を行います。
ロールバックは「過去リビジョンの本文を新しいリビジョンとして保存し直す」 操作です。履歴を巻き戻すのではなく、過去の本文をもう一度保存することで、 そのページの最新状態が過去の内容に置き換わります。
過去版を ?revision_id= で開くと表示される stale-revision バナーには、
「この版に戻す」 ボタンがあります。
- ボタンを押すと、確認ダイアログなしにその場でロールバックが実行され、
ロールバック後の最新ページ(
?revision_id=の付かない URL)へ 自動的に遷移します。確認を挟まないのは、ロールバックが非破壊 (履歴を消さずに新しいリビジョンを 1 つ追加するだけ)で、いつでも やり直せるためです。 - 古い版を開いている間に他のユーザーがそのページを更新していても、 ロールバックは常に サーバー側の最新リビジョンの上に 積まれます。 競合エラーにはならず、履歴もすべて残ります。
- 通常ページとポータルページのどちらでも同じバナー・同じボタンから ロールバックできます。
ロールバックしても、それまでのリビジョン履歴は消えません。あくまで 新しいリビジョンが 1 つ追加されるかたちです。これにより「いったん 戻したが、やはり元に戻したい」という場合にも、さらに新しいリビジョン として再度切り替えられます。
Tip: 履歴が一直線に積み上がるため、誤った編集に気づいたときも安全に 巻き戻せます。「履歴を消さずに前進だけする」のが Crowi の履歴モデルです。
関連ページ
- ページの作成と編集 — ページの編集と保存
- リアルタイム共同編集 — 保存と共同編集者の記録
- コメント — 特定リビジョンに紐づくコメント