コンテンツにスキップ

内蔵の git

Restorm のプロジェクトは git リポジトリの中で使うことを前提に作られています。 この統合は単なる git commit にとどまりません。 ファイル形式を理解して、YAML の行ではなく業務上のエンティティ単位で競合を解決できます。

設定は何も必要ありません。 開いている .restorm ファイルが git リポジトリの中にあれば、git 関連の画面が有効になります。

Restorm は お使いのローカルの git を使います。 認証情報を入力する必要はなく、アプリケーション内でトークンを管理することもありません。 ルールは単純です。ターミナルで git push が通るなら、Restorm でも通ります。 git はプロンプトを無効にした状態で起動されるため、 パスワードを求めるようなリポジトリはインターフェースを固まらせることなく、 git のメッセージとともに即座に失敗します。

プッシュプル の 2 つのボタンがあり、 送るものがあるとき、または取得できる新しいバージョンがあるときに、 それぞれ ドット(数字ではなく点)が付きます。

タイトルバーの Git メニューには同じアクションに加えて、 更新サーバーのバージョンに戻す履歴 があります。

ステータスバーの GIT セル。更新、プッシュ、プル、そして履歴が並び、プッシュとプルにはドットが付いています。「リポジトリにプッシュ」のツールチップが開いています。

プッシュのモーダルには、構造的な差分から 決定的に 生成された コミットメッセージの下書き が表示されます。言語モデルは使いません。 変更されたエンティティ(リクエスト、シナリオ、フォルダー、変数フォルダー)ごとに 1 行で、 フィールドごとに 1 行になることはありません。

  • メッセージの 言語セレクター。インターフェースの言語とは独立していて、 既定値にするためのスイッチも付いています。
  • 編集できる タイトル。72 文字を目安とするカウンター付きです。
  • 複数行の 本文

確定すると、保存、git add、コミット、プッシュが順に実行されます。

Restorm はまず保存し、その後に取得してマージします。

きれいにマージできた場合:ツリーと開いているタブがその場で更新されます。

競合した場合4 ペイン の解決ビューが開きます。

4 ペインの競合解決ビュー。左に競合の一覧、あなたのバージョン、サーバーのバージョン(食い違っている URL が赤枠で囲まれています)、そして自分のバージョンを採用したあとに埋まった「解決済み」ペインが表示されています。

ペイン内容
競合の一覧競合しているエンティティ
あなたのバージョン読み取り専用
サーバーのバージョン読み取り専用
解決済み編集可能。これが書き込まれる内容になります

重要な点は、どのペインもエンティティを本物のエディターで表示する ことです。 HTTP リクエストは HTTP エディター、シナリオはシナリオエディターで開きます。 YAML の <<<<<<< マーカーを解決するのではなく、2 つのリクエストを見比べるのです。

左右それぞれに 「このバージョンを使用」 ボタンがあり、 食い違っているフィールドは赤くハイライト されます。 差があるフィールドが 1 つだけのときは、そのフィールドのタブが直接開きます。

変数フォルダーの API ドキュメントは自動的に解決されます(新しいバージョンが優先されます)。

キャンセル すると git merge --abort が実行されます。 解決の途中でアプリケーションを閉じた場合は、次回の起動時にマージを中止するか尋ねられます。

バックグラウンドの確認(セミプル)

Section titled “バックグラウンドの確認(セミプル)”

Restorm は新しいバージョンがあるかどうかを定期的に確認しますが、 自動でマージすることは決してありません。 きっかけは 3 つあります。.git の変更を検知したとき、ファイルを開いたとき、 そして 設定 ▸ Git で頻度を選べるタイマー(Off、15 分、30 分、1 時間、4 時間、12 時間、24 時間)です。

新しいバージョンがあると「更新があります」の通知が表示され、 今すぐプル が選べます。

ファイルが外部で変更された場合

Section titled “ファイルが外部で変更された場合”

開いてからファイルがディスク上で変わっていた場合、保存は拒否され、 再読み込み するか 自分のバージョンを保持 するかを尋ねられます。

プロジェクトと .restorm ファイル で説明している、 ファイル形式の 2 つの性質によります。 正規化されたキーの順序 と、安定して導出される識別子 です。

その結果、開いて何も変えずに保存し直しても差分は出ませんし、 2 人が同じ場所に同じリクエストを追加しても、マージが対応付けられるエンティティになります。

Git ▸ 履歴 で 2 ペインのビューが開きます。 ブランチのガター付きのコミット一覧と、右側に詳細が表示されます。 コミットのコンテキストメニューから、そのバージョンを復元できます。

Pro 版で 4 つのツールを利用できます。 git_commit_push(2 段階のうちの 1 段階目。レビュー用のトークン、タイトル、本文、 エンティティごとの差分を返し、何も書き込みません)、 git_confirm_push(2 段階のうちの 2 段階目。レビュー以降にプロジェクトが変わっていた場合は拒否されます)、 git_pullgit_resolve_conflicts です。

2 段階に分かれているのは意図的な設計です。 差分が先に提示されないかぎり、エージェントはプッシュできません。