プロジェクトとドキュメント
自動保存、バージョン、クラウド同期、そしてコンフリクト:作業内容が今どの状態にあるか、そして古い状態をどう取り戻すか。
aukimiは2種類のものを保存し、その違いが後で何ができるかを決めます。
| プロジェクト(Project) | ドキュメント(Document) | |
|---|---|---|
| 保持するもの | すべてのスタジオの状態 | 1つのスタジオのファイル |
| 作成元 | ダッシュボードの New project | モジュールにそのまま入る |
| スタジオ横断の受け渡し | あり | なし |
| クラウド保存、共有、コラボレーション | あり | なし。まずUpload to Cloud |
| 変換可否 | , | Convert to Project |
プロジェクトは作業の標準単位です。ドキュメントは「とにかく何か描きたい」ときの近道で、後から何も失わずに昇格させられます。逆にプロジェクトをドキュメントへ戻すことは、意図的に提供されていません。
自動保存#
既定でオンになっており、間隔はSettings → Generalで設定できます。作業内容はプロジェクトごとにスコープされた形でIndexedDBに書き込まれ、localStorageをフォールバックとして使います。あるプロジェクトの1つのスタジオの状態が、別のプロジェクトに漏れ出すことは決してありません。
Ctrl+Sは即座に保存を強制します。滅多に必要ありませんが、反射的に使えるように用意されています。
ローカルストレージには限りがあり、それを所有しているのはブラウザです。容量がほぼ一杯になると、aukimiは保存を静かに失敗させるのではなく警告します。aukimi.comのサイトデータを消去すると、アップロードされていなかったプロジェクトはすべて、元に戻せない形で消去されます。
バージョン#
各プロジェクトはバージョン履歴を保持しており、ダッシュボードのカードからアクセスできます。
- Autosavedバージョンは作業中に自動的に取られます。
- Savedバージョンは自分で要求したもの、Save a versionです。前回から何も変わっていなければ、aukimiは複製を保存する代わりにその旨を伝えます。
- Before a restoreバージョンは、何かを復元した瞬間に自動的に書き込まれるので、復元そのものも取り消せます。
バージョンはブラウザ内に保存され、プロジェクトごとに直近のN個が保持されます。Pinすると、その上限を超えても保持され、クラウド保存がオンのときはクラウドにもコピーされます。復元する前に、あるバージョンをプレビューしたり、2つのバージョンを選んで並べて比較したりできます。
クラウド保存#
自分でオンにしない限りオフのままで(Settings → Cloud Save)、サブスクリプションが必要です。一度オンにすると、aukimiは変更があるたびにおよそ60秒ごとにプロジェクトをアップロードします。
移動するのは、状態を持つスタジオごとに1ファイルです。.engine、.ink、.sculpt3d、.p3d、.dawなど、インポートと書き出しに一覧があり、加えてプロジェクトのバイナリアセットと、スタジオが対応していればそのUndo履歴も含まれます。
ダッシュボードは各プロジェクトに、それがどこにあるかのラベルを付けます。On this machine、In the cloud、Shared with meです。
コンフリクト#
Changed elsewhere, needs a decision。
この状態は、前回の同期以降にクラウド上のコピーが動いたことを意味します。別のマシンか、別のタブです。aukimiは推測しません。答えはちょうど2つだけ提示します。
- Keep local (overwrite cloud):今の作業内容を優先し、クラウド側のバージョンは置き換えられます。
- Keep cloud (discard local):クラウド側のバージョンを優先し、ローカルの変更は失われます。
自動マージは用意されておらず、それは意図的です。中途半端にマージされたスカルプトや中途半端にマージされたタイムラインは、どちらか一方の完全な版よりも悪いものになります。両方の内容が大事なら、まずローカル側を書き出し(File → Export、またはインポートと書き出しにあるスタジオごとの書き出し)、そのうえでクラウド側を取り込んでください。
変更履歴#
バージョンとは別に、読める形で記録されます。各プロジェクトは、何がいつ変わったかのログを日単位でまとめて保持し、ダッシュボードのHistoryから見られます。これが答えるのは「火曜日に何をしたか」であって、「火曜日のファイルを返してくれ」ではありません。後者のためにあるのがバージョンです。
オフライン#
接続がなくてもアプリは動き続けます。自動保存はローカルで行われるので何も失われず、同期ピルはOfflineと表示し、クラウド側のコピーは最後の同期時点のままです。オフラインで作成された新しいプロジェクトにはその旨のラベルが付き、オンラインに戻るとアップロードされます。