ABDiff ヘルプ

App Store アプリのディスクアクセス

ABDiffはApp Storeのアプリであるため、Appleのサンドボックス内で動作します。 サンドボックスは、明示的にアクセス権を付与する場合を除き、アプリがファイルを読み込むことを防止します(例として、フォルダーを選択したり、ファイルをドラッグしたり、設定 でアクセスルートを追加するなど)。

このため、時々次のようなプロンプトが表示されます。

ABDiff は、Git から渡されたファイルを開くためにこのフォルダーへのアクセスが必要です。

なぜ git difftool がディスクアクセスプロンプトをトリガーするのか

git difftool を実行すると、Git は通常、比較したいファイルの temporary copies を作成します。 これらは macOS の一時フォルダーに次のように格納されています:

/private/var/folders/.../T/...

それらのパスはリポジトリフォルダーの外部にあるため、/Users/you/Developer/code のような保存されたアクセスルートは適用されません。 したがって、ABDiff は、テンポラリーファイルを含むフォルダーを承認していただき、開くことができるように求めます。

プロンプトを拒否した場合、ABDiff は一時ファイルを読み取ることができず、「No permission to read …」のようなエラーが表示されます。

対処方法

これらのオプションのいずれかをご利用ください。

設定 → Folder Access で、保存されたアクセスルートを確認または削除できます。

  1. プロンプトが表示されたら、提案されたフォルダーを許可してください。 ABDiff は、選択したフォルダーを 設定 → Folder Access に追加し、プロンプトなしで再利用できるようにします(ただし「Save Git access prompts here」を無効にしない限り)。

  2. たとえば、Git difftool を頻繁に使用する場合は、設定でより広いアクセスルートを追加してください。

    • /private/var/folders
  3. リポジトリ内の実際のファイルを git difftool ではなく比較することで、temp パスを回避してください。例えば、ファイルを ABDiff にドラッグしてください。

なぜ「フルディスクアクセス」のように見えるのか

Git が異なる場所(例:リポジトリ内のファイル、/private/var/... のファイル)からファイルを渡す場合、唯一の共通親は / である可能性があります。 その場合、システムピッカーは「全ディスク」のように見えることがありますが、ABDiff は依然として開いたファイルだけを読み取ります。

ABDiff は単独でフルディスクアクセスを要求せず、ドライブをスキャンしません。 それは、明示的に開くかアクセスを許可したファイルやフォルダーのみを読み取ります。

関連トピック