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