英語 ▾ トピック ▾ 最新バージョン ▾ git-fsmonitor--daemon は 2.43.0 で最終更新されました

名前

git-fsmonitor—​daemon - 組み込みファイルシステムモニター

概要

git fsmonitor--daemon start
git fsmonitor--daemon run
git fsmonitor--daemon stop
git fsmonitor--daemon status

説明

プラットフォーム固有のファイルシステム通知機能を使用して、ファイルおよびディレクトリの変更をワーキングディレクトリで監視するデーモンです。

このデーモンは、より遅い githooks[5] インターフェースではなく、simple IPC インターフェースを使用して、git status のようなコマンドと直接通信します。

このデーモンは Git に組み込まれているため、サードパーティのツールは不要です。

オプション

start

デーモンをバックグラウンドで起動します。

run

デーモンをフォアグラウンドで実行します。

stop

現在のワーキングディレクトリで実行中のデーモンがあれば停止します。

status

デーモンが現在のワーキングディレクトリを監視している場合、ゼロステータスで終了します。

備考

このデーモンは、単一のワーキングディレクトリを監視し、最近変更されたファイルとディレクトリのリストを維持するために使用される長時間実行プロセスです。git status のようなコマンドは、ワーキングディレクトリへの変更の概要を要求するだけでディスクのスキャンを回避できるため、パフォーマンスを向上させることができます。

core.fsmonitortrue に設定されている場合 (git-config[1] を参照)、git status のようなコマンドはデーモンに変更を要求し、必要であれば自動的にデーモンを起動します。

詳細については、git-update-index[1] の「ファイルシステムモニター」セクションを参照してください。

注意点

fsmonitor デーモンは現在、サブモジュールを認識しておらず、サブモジュール内で発生するファイルシステムイベントを除外する方法も知りません。fsmonitor デーモンがスーパーリポジトリを監視しており、サブモジュールのワーキングディレクトリ内でファイルが変更された場合、その変更を報告します(スーパーリポジトリに対する変更として)。しかし、クライアントはこれらの余分なイベントを適切に無視するため、パフォーマンスに影響が出る可能性はありますが、誤った結果を引き起こすことはありません。

デフォルトでは、fsmonitor デーモンはネットワークマウントされたリポジトリでは動作を拒否します。これは fsmonitor.allowRemotetrue に設定することで上書きできます。ただし、fsmonitor デーモンがすべてのネットワークマウントされたリポジトリで正しく動作することは保証されていないため、そのような使用は実験的と見なされます。

Mac OS では、さまざまな Git コマンドと fsmonitor デーモン間のプロセス間通信 (IPC) は、Unix ドメインソケット (UDS) — 特殊な種類のファイル — を介して行われます。これはネイティブの Mac OS ファイルシステムではサポートされていますが、ネットワークマウントされたファイルシステム、NTFS、FAT32 ではサポートされていません。他のファイルシステムが必要なサポートを持っているかどうかは不明であり、fsmonitor デーモンがこれらのファイルシステムで動作することは保証されておらず、そのような使用は実験的と見なされます。

デフォルトでは、ソケットは .git ディレクトリに作成されます。しかし、.git ディレクトリがネットワークマウントされたファイルシステム上にある場合、$HOME 自体がネットワークマウントされたファイルシステム上にある場合を除き、代わりに $HOME/.git-fsmonitor-* に作成されます。後者の場合、ソケットファイルを作成するための Mac OS ネイティブファイルシステム上のディレクトリのパスを、設定変数 fsmonitor.socketDir に設定する必要があります。

上記のディレクトリ (.git$HOME、または fsmonitor.socketDir) のいずれも Mac OS ネイティブファイルシステム上にない場合、fsmonitor デーモンはエラーを報告し、デーモンと現在実行中のコマンドが終了します。

設定

このセクションのこの行より下のすべての内容は、git-config[1] ドキュメントから選択的に含まれています。内容はそちらで見つかるものと同じです。

fsmonitor.allowRemote

デフォルトでは、fsmonitor デーモンはネットワークマウントされたリポジトリでは動作を拒否します。fsmonitor.allowRemotetrue に設定すると、この動作が上書きされます。core.fsmonitortrue に設定されている場合にのみ有効です。

fsmonitor.socketDir

この Mac OS 固有のオプションは、設定されている場合、fsmonitor デーモンと様々な Git コマンド間の通信に使用される Unix ドメインソケットを作成するディレクトリを指定します。このディレクトリは、ネイティブの Mac OS ファイルシステム上に存在する必要があります。core.fsmonitortrue に設定されている場合にのみ有効です。

GIT

git[1] スイートの一部

scroll-to-top