SYNOPSIS
git fsmonitor--daemon start git fsmonitor--daemon run git fsmonitor--daemon stop git fsmonitor--daemon status
DESCRIPTION
プラットフォーム固有のファイルシステムの通知機能を使用して、 作業ディレクトリのファイルとディレクトリの変更を監視するデーモン。
このデーモンは、 低速の githooks(5) インターフェイスではなく、 simple IPC インターフェイスを使用して、 git status
などのコマンドと直接通信(communicate)します。
このデーモンは Git に組み込まれているため、 サードパーティのツールは必要ありません。
OPTIONS
- start
-
バックグラウンドでデーモンを開始(start)します。
- run
-
フォアグラウンドでデーモンを実行します。
- stop
-
存在する場合、 現在の作業ディレクトリで実行されているデーモンを停止(stop)します。
- status
-
デーモンが現在の作業ディレクトリを監視している場合、 ゼロ・ステータスで終了(exit)します。
REMARKS
このデーモンは、 単一の作業ディレクトリを監視し、 最近変更されたファイルとディレクトリのリストを維持するために使用される長時間実行プロセスです。 作業ディレクトリへの変更の概要を要求するだけで、 ディスクのスキャンを回避できる場合、 git status
などのコマンドのパフォーマンスを向上させることができます。
core.fsmonitor
が true
に設定されている場合 (git-config(1) 参照)、 git status
などのコマンドはデーモンに変更を要求し、 必要に応じてデーモンを自動的に起動します。
詳細については、 git-update-index(1) の「File System Monitor」セクションを参照してください。
CAVEATS
fsmonitor デーモンは現在、 サブモジュールについて認識しておらず、 サブモジュール内で発生するファイルシステムのイベントを除外する方法も認識していません。 fsmonitor デーモンがスーパー・リポジトリを監視していて、 サブモジュールの作業ディレクトリ内でファイルが変更された場合、 (スーパー・ リポジトリに対して発生したものとして)変更が報告されます。 ただし、 クライアントはこれらの余分なイベントを適切に無視するため、 パフォーマンスが影響を受ける可能性がありますが、 誤った結果が生じることはありません。
デフォルトでは、 fsmonitor デーモンはネットワーク・マウントされたリポジトリに対する動作を拒否します。 これは、 fsmonitor.allowRemote
を true
に設定することで上書きできます。 ただし、fsmonitor デーモンはネットワーク・マウントされたすべてのリポジトリで正しく動作することが保証されておらず、 そのような使用は実験的であると考えられることに注意してください。
Mac OS では、さまざまな Git コマンドと fsmonitor デーモンの間のプロセス間通信 (IPC) は、 Unix ドメイン・ソケット (UDS) — という特別な種類のファイル — を介して行われます。 UDS はネイティブの Mac OS ファイルシステムではサポートされていますが、 ネットワーク・マウントされたファイルシステムやNTFSやFAT32 上ではサポートされていません。 他のファイルシステムでは必要なサポートがある場合とない場合があります。 fsmonitor デーモンはこれらのファイルシステムで動作することが保証されておらず、 そのような使用は実験的であるとみなされます。
デフォルトでは、 ソケットは .git
ディレクトリに作成されますが、 .git
ディレクトリがネットワーク・マウントされたファイルシステム上にある場合は、 代わりに $HOME/.git-fsmonitor-*
に作成されます。 ただし、 $HOME
自体がネットワーク・マウントされたファイルシステム上にある場合は、 構成変数 fsmonitor.socketDir
を、 ソケット・ファイルを作成する Mac OS ネイティブ・ファイルシステム上のディレクトリのパスに設定する必要があります。
上記のディレクトリ(.git
または $HOME
または fsmonitor.socketDir
) がネイティブ Mac OS ファイルシステム上にない場合、 fsmonitor デーモンはエラーを報告し、 デーモンと現在実行中のコマンドが終了(exit)します。
CONFIGURATION
このセクションの以下のすべては、 git-config(1) ドキュメントの抜粋です。 内容は git-config(1) ドキュメント にあるものと同一です:
- fsmonitor.allowRemote
-
デフォルトでは、 fsmonitor デーモンはネットワークにマウントされたリポジトリに対する動作を拒否します。
fsmonitor.allowRemote
をtrue
に設定すると、この振る舞いをオーバーライドします。core.fsmonitor
がtrue
に設定されている場合にのみ尊重されます。 - fsmonitor.socketDir
-
この Mac OS 固有のオプションが設定されている場合、 fsmonitor デーモンと、 様々な Git コマンド間の通信に使用される Unix ドメイン・ソケットを作成するディレクトリを指定します。 ディレクトリはネイティブな Mac OS ファイルシステム上に存在する必要があります。
core.fsmonitor
がtrue
に設定されている場合にのみ尊重されます。
GIT
Part of the git(1) suite