office

PPTX Version Control

PowerPoint(PPTX)の版を端末内で保存し、差分確認、Branch、3-way Merge、競合解決までブラウザで管理します。

ローカル処理
ファイルについてこのツールで選択したファイルや入力内容は、Browser Kittyのバックエンドへアップロードせずブラウザ内で処理します。
操作デモ 実際の操作の流れを短い動画で確認できます。

このツールについて

PPTX Version Controlは、PowerPointファイルを編集するたびにコピーを増やす代わりに、1つのプロジェクトとしてVersion履歴を端末内へ保存するツールです。最初のPPTXからプロジェクトを作り、編集後のPPTXを新しいVersionとして追加できます。保存済みVersionはHEADを動かさず開く・PPTXとして書き出す・新しいVersionとして復元でき、過去Versionを起点にBranchを作ることもできます。

変更内容は生のOOXML差分ではなく、文章・数値・画像・オブジェクト・配置・書式・スライド順・発表者ノートをSemantic Diffとして確認できます。保存済みVersion、Branch HEAD、未保存の編集内容は、横並び・重ね合わせ・分割・点滅でも見た目を比較できます。分岐した作業は共通BASEを使った3-way Mergeで統合し、安全に自動統合できない変更はConflict Resolverへ残します。PPTX解析、履歴保存、比較、Branch / Merge、入出力は端末内で処理されます。

こんなときに便利

  • PowerPointの修正版を何世代も残しながら、どのVersionで何が変わったか確認したい
  • 過去のPPTXから別案をBranchとして作り、元の作業を残したまま編集を続けたい
  • 複数Branchで分かれた変更を3-way Mergeし、競合だけ画面で確認して解決したい
  • ブラウザ内の履歴を.pptxvcとしてバックアップしたり、Gitでレビューしやすい正規化データを書き出したい

できること

このツールで利用できる主な機能です。

使い方

  1. 「ツールを開く」を押し、最初のPPTXをドロップまたは選択します。
  2. プロジェクト名とVersionメモを入力し、最初のVersionを保存します。
  3. PowerPointで資料を編集したら、「編集後のPPTX」へファイルをドロップまたは選択して変更内容を確認します。
  4. Semantic Diffと必要に応じて見た目比較を確認し、問題なければ次のVersionとして保存します。
  5. 別案を並行して進める場合は保存済みVersionからBranchを作成し、Branchを切り替えてVersionを追加します。
  6. Branchを統合するときはMergeを開き、BASE / 現在 / 取り込み元の結果を確認します。競合があれば現在側・取り込み元側の選択や対応する文章競合の手動編集で解決します。
  7. 重要なプロジェクトは.pptxvcとして書き出してバックアップします。Gitで差分レビューしたい場合はGit向けZIPを別途書き出します。

対応範囲

  • 入力: 安定対応は.pptx。旧.ppt、.pptm、.potx、.ppsxはリリース対象ではありません。
  • 履歴: Project / Commit / Branch / ref / HEADとContent-addressed ObjectをIndexedDBへ保存し、ObjectはSHA-256で管理します。
  • 比較: Semantic Diffに加え、保存済みVersion・Branch HEAD・未保存PPTXを横並び / 重ね合わせ / 分割 / 点滅で確認できます。
  • Branch / Merge: 保存済みVersionからBranchを作成でき、共通BASEを使った3-way MergeとConflict Resolverに対応します。
  • バックアップ: refs、Commit、必要なObjectを含むプロジェクト全体を.pptxvc 1ファイルで書き出し / 読み込みできます。
  • Git向け書き出し: 安定したスライドIDのJSON、正規化した参照関係、SHA-256名のメディアをZIPへ保存します。.gitの作成・clone・push・同期は行いません。
  • 実行時通信: 単一HTMLはconnect-src 'none'で実行時通信を遮断し、選択したPPTXや履歴をアプリのサーバーへ送信しません。

制限・注意点

  • 安定した入力形式は.pptxです。.pptm、.potx、.ppsxは現時点のリリース対象ではありません。
  • SmartArt、OLEオブジェクト、未対応のOOXML拡張は可能な範囲で元パッケージを保持しますが、詳細なSemantic Diffの対象にならない場合があります。
  • パッケージ全体や参照関係が複雑な競合は、プロパティ単位で安全に統合できない場合があります。その場合は無理にMergeせず競合として残します。
  • Git向けZIPは通常のGitで差分レビューしやすくするための形式で、完全なプロジェクトバックアップではありません。履歴と元PPTXをまとめて保持する場合は.pptxvcを使用します。
  • 履歴はIndexedDBに保存されるため、ブラウザやサイトデータを削除すると失われる可能性があります。重要なプロジェクトは.pptxvcへ書き出してください。
  • 大きなPPTX、多数の埋め込みメディア、長い履歴ではブラウザのメモリやローカルストレージを多く使用します。
  • 通常のDeflate圧縮PPTXの解析にはDecompressionStream('deflate-raw')が必要で、Chrome / Edgeが主要対象です。

よくある質問

PPTXやVersion履歴はサーバーへ送信されますか?

いいえ。GitHub Pages版では最初のアプリHTML取得は発生しますが、PPTX解析、履歴保存、Semantic Diff、見た目比較、Branch / Merge、プロジェクト入出力は端末内で処理し、選択したPPTXをアプリのサーバーへアップロードしません。

PPTX Diffとは何が違いますか?

PPTX Diffは2つのPPTXをその場で比較する用途が中心です。PPTX Version ControlはVersion履歴を保存し、過去版の復元、Branch、3-way Merge、競合解決、.pptxvcバックアップまで継続的に管理する用途を想定しています。

ブラウザの履歴だけをバックアップとして使って大丈夫ですか?

重要なプロジェクトでは推奨しません。履歴はIndexedDBに保存され、ブラウザデータの削除で失われる可能性があります。.pptxvcを書き出して別に保管してください。

Git向け書き出しでGitリポジトリを作れますか?

いいえ。Git向けZIPは通常のGitで差分レビューしやすい正規化ファイルを作る機能で、.gitの生成、clone、push、同期は行いません。完全なPPTX Version Control履歴のバックアップには.pptxvcを使います。

オフライン版・ソースコード

単一HTML版を保存すれば、PPTX解析、Version履歴、Semantic Diff、見た目比較、Branch / Merge、競合解決、.pptxvc / Git向け書き出しを実行時の外部通信なしで利用できます。履歴はこのブラウザのIndexedDBへ保存されます。通常のDeflate圧縮PPTXにはDecompressionStream('deflate-raw')が必要です。

GitHubでソースを見る