日本語 ▾ トピック ▾ 最新バージョン ▾ 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] インターフェースではなく、シンプルな 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/.git-fsmonitor-* に作成されます。$HOME 自体がネットワークマウントされたファイルシステム上にある場合は、設定変数 fsmonitor.socketDir を、ソケットファイルを作成する Mac OS ネイティブファイルシステム上のディレクトリのパスに設定する必要があります。

上記のいずれのディレクトリ (.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