クラウド同期とバージョン管理
Rephlo は、コマンドを同時に2つの場所に保存できます。コンピューター上のアプリ内と、クラウド上のアカウント内です。クラウド同期は、コマンドをオンラインギャラリーに公開することで、別のデバイスで再利用したり、共有したり、後で復元したりできるようにします。コマンドが同期されると、Rephlo はローカルコピーとクラウドコピーを自動的に同期させ続けます。
このページでは、公開の仕組み、同期ステータスラベルの意味、Rephlo が競合をどのように処理するか、そしてバックグラウンド同期がどのように最新の状態を保つかについて説明します。
コマンドをクラウドに公開する
コマンドを公開すると、Rephlo はそれをアカウントのオンラインギャラリーに送信し、サーバーが恒久的な ID とバージョン番号を割り当てます。変更内容を説明する短い**変更履歴(changelog)**メモを任意で含めることができます。
- 初回公開では、新しいギャラリーエントリが作成され、ローカルコマンドにオンライン ID とバージョンが記録されます。
- 同じコマンドのその後の公開では、更新がプッシュされ、サーバー上のバージョン番号が上がります。
- 公開にはサインインが必要です。 セッションの有効期限が切れている場合、Rephlo は再度ログインを求め、ローカルコピーはそのまま残されます。
ID やバージョンを自分で管理する必要はありません。公開が成功すると、Rephlo が自動的にコマンドに記録します。
同期ステータスを理解する
すべてのコマンドは同期ステータスを追跡しており、そのコマンドがクラウドコピーに対してどのような状態にあるかを Rephlo(そしてあなた)に伝えます。
| ステータス | 意味 |
|---|---|
| None | コマンドが一度も同期されていません。このコンピューター上にのみ存在します。 |
| Synced | ローカルコピーがサーバーで確認された最新バージョンと一致しています。保留中の変更はありません。 |
| Dirty | コマンドにローカルの変更(または失敗した公開)があり、サーバーへのプッシュがまだ必要です。 |
| Conflict | ローカルコピーとクラウドコピーの両方が別々に変更されました。同期を続ける前に対応が必要です。 |
同期済みのコマンドを編集すると、次の公開が成功して Synced に戻るまで、そのコマンドは Dirty になります。
同期が失敗した 場合
Rephlo は作業内容を失わないよう、意図的に慎重に動作します。
- バリデーションの問題(例えば、サーバーが拒否するフィールドなど)があると、コマンドは Dirty としてマークされ、具体的なエラーが表示されるため、修正して再試行できます。
- サーバーまたはネットワークのエラーも同様にコマンドを Dirty としてマークし、Rephlo は次回の同期サイクルで再試行します。
- サインインの問題では、ローカルの同期状態は変更されません。再認証して再試行するだけです。
- アプリが古い ID を記憶したままの状態で、コマンドがオンラインギャラリーから削除された場合、次回の公開時にこれが検出され、新しいクラウドコピーが自動的に再作成されます。
一括「Sync All」
複数のコマンドが Dirty になっている場合、1つずつ手動で公開する代わりに、まとめて同期できます。Rephlo はこの処理を最適化し、高速でありながらサーバーのレート制限内に収まるようにします。
競合の処理とバックグラウンド取得
バックグラウンドで、Rephlo は定期的にクラウドからコマンドを取得し、オンライン ID ごとにローカルコピーと比較します。最初の取得はアプリ起動直後に実行され、その後は一定の周期で繰り返されます。
各取得時の動作は、クラウドコピーが新しいかどうか、そしてローカルコピーに未保存の変更があるかどうかによって決まります。
主なポイント:
- クラウドが新しくない場合 → 変更はありません。Rephlo はインストール数や平均評価などのオンライン統計を更新するだけです。
- クラウドが新しく、ローカルがクリーンな場合 → Rephlo はローカルコピーを更新し、Synced としてマークします。
- クラウドが新しく、ローカルが Dirty な場合 → Rephlo は編集内容を上書きする代わりに、コマンドを Conflict としてマークします。
- バックグラウンド取得は、新しいローカルコマンドを自動的に作成することはありません。すでに存在するコマンドの整合性を取るだけです。
コマンドが Conflict 状態になった場合は、どちらのバージョンを残すか決めてから、選んだ内容をクラウドにプッシュするために再公開してください(あるいは、ローカルの編集内容を破棄してクラウドコピーを優先させることもできます)。