Skip to content

編集履歴を Git にエクスポート ​

VMark はドキュメントごとに編集履歴を残します。保存のたびに、また AI クライアントが MCP 経由で行う編集のたびに、誰が行ったかとともに記録されます。ファイル → ドキュメント履歴 → 編集履歴を Git にエクスポート… は、この履歴を Git リポジトリにコピーします。git log で閲覧したり、差分を見たり、プロジェクトと一緒に保管したりできます。

エクスポートの手順 ​

  1. 履歴を書き出したいドキュメントを開きます。
  2. ファイル → ドキュメント履歴 → 編集履歴を Git にエクスポート… を選びます(コマンドパレットから 編集履歴を Git にエクスポート を実行しても構いません)。
  3. Git リポジトリ内のフォルダを選びます。選択ダイアログはドキュメントのあるフォルダで開きます。

VMark は追加したコミット数、またはブランチがすでに最新だったことを知らせます。

ブランチの中身 ​

履歴は専用のブランチ vmark-journal/<document-uuid> に書き出されます。VMark は作業ツリー、インデックス、HEAD、その他のブランチには一切触れず、ブランチの切り替えもしません。ブランチにはドキュメント名のファイルが 1 つだけ入ります。

  • リビジョンごとに 1 コミット。 作成者は編集を行った人(あなた、または AI クライアント)で、日時は編集した時刻です。
  • 整理された履歴の区間ごとに 1 つのまとめコミット。 VMark は履歴を小さく保つために古いリビジョンを整理します。整理されたリビジョンの連続は Collected history という 1 つのコミットになり、その区間で編集したすべての人を列挙します。

各コミットメッセージの末尾には、VMark と結びつけるトレーラーが付きます。

トレーラー意味
VMark-Documentドキュメントの識別子。すべてのコミットで同じです
VMark-Revisionこのコミットが記録するリビジョン
VMark-Parent1 つ前のリビジョン
VMark-Actor編集を行った人
VMark-Kind記録のされ方:controlled(VMark 経由の AI 編集)、observed(保存)、gap(VMark の外で行われた変更)など
VMark-ToolAI 編集に使われた MCP ツール
VMark-Session、VMark-ClientAI クライアントのセッションラベルと名前(提供された場合)
VMark-Collectedまとめコミットで、対象となる整理済みリビジョンの範囲
VMark-Actorsまとめコミットで、その範囲で編集したすべての人(並べ替え済み)

再エクスポート ​

何度でもエクスポートできます。2 回目以降は前回以降のリビジョンだけを追加し、新しいものがなければ何も変えません。同じ履歴からは常に同じコミットが作られます。

ブランチが VMark の残した状態でなくなっている場合、VMark は上書きせずにエクスポートを拒否します。

  • 前回のエクスポート以降にブランチが変更された(誰かがコミットした、巻き戻した、書き換えた)。ブランチを移動または削除してから、もう一度エクスポートしてください。
  • 同じ名前のブランチが存在するが、このドキュメントの VMark エクスポートではない。
  • ブランチがチェックアウトされている(ワークツリーで)。

要件と制限 ​

  • Git がインストールされている必要があります。VMark はログインシェルの PATH から Git を探し、見つからない場合はその旨を表示します。
  • エクスポートされるのは保存済みの履歴だけです。まだ保存していない編集は含まれません。
  • VMark は Git の低レベルコマンドでコミットを作るため、コミットフックは実行されません。ブランチの更新を監視するフックは実行されます。
  • 大きな履歴には時間がかかります。コミット 1 つにつき Git のプロセスがいくつか動きます。
  • シャロークローン(shallow clone)では、VMark はこのコンピューターから自分でエクスポートしたブランチだけを続けます。
  • エクスポート中はエクスポート先のブランチをチェックアウトしないでください。最後のワークツリー確認の後にチェックアウトすると、そのワークツリーのインデックスとファイルが、移動したブランチと食い違ったままになることがあります。