web-dev-qa-db-ja.com

.nfs0000 ... Mercurialの使用時にファイルが表示されたり消えたりする

最近、私のマシンで他の何よりも厄介なことが起こっているようです。Mercurialの変更をディレクトリで見るたびに、すぐに消える2つの.nfs####ファイルについて通知されます。 ####は、点滅するたびに増加するようです。

私のコンピューターは狂っていますか?これはMercurialに関連していますか?ファイルシステム関連(これはネットワークマウントドライブです)

$ hg st
? .nfs000000001b1d062600000a43
? .nfs000000001b1d085a00000a44
$ ls -lhtrA
total 1.7M
drwxrwxr-x 5 nick    nick    4.0K Sep  2 14:34 media/
drwxrwxr-x 6 nick    nick    4.0K Sep 19 17:07 venv/
drwxrwxr-x 7 nick    nick    4.0K Sep 19 18:55 lab_web/
drwxrwxr-x 8 nick    nick    4.0K Sep 19 20:15 templates/
drwxrwxr-x 5 nick    nick    4.0K Sep 20 17:44 .hg/
-rw-rw-r-- 1 nick    nick     252 Jul 23 17:21 manage.py
-rw-rw-r-- 1 nick    nick     177 Sep 19 17:07 requirements.txt
-rw-r--r-- 1 nick    nick    1.7M Sep 19 19:46 lab_sqlite3.db
-rw-rw-r-- 1 nick    nick     141 Sep 19 20:26 debug_requirements.txt
-rw-rw-r-- 1 nick    nick     274 Sep 20 17:44 .hgignore
$ hg st
? .nfs000000001b1d062600000a47
? .nfs000000001b1d085a00000a48
$ hg st
? .nfs000000001b1d062600000a49
? .nfs000000001b1d085a00000a4a
4
Nick T

.nfs*ファイルは NFS に関連しています。ファイルが削除されるとNFSサーバーに表示されますが、クライアントによって開かれたままです。サーバーは、ファイルを開いているクライアントにデータを提供する必要があるため、ファイルを削除しないでください。一方、サーバーはファイルを削除する必要があります。それを削除したプロセスは、そのファイルが存在しないことを期待しているためです。そのため、NFSサーバーはファイルの名前を、誰も気にしない名前に変更します。

それらを削除しようとしても意味がありません。NFSクライアントがまだ開いているファイルを削除するため、サーバーはデータを保持するために新しい.nfs*ファイルのみを作成します。

最終的にクライアントはファイルを閉じ、.nfs*ドロップが消えます。

これらのファイルを無視するようMercurialに指示できます。 [ui]~/.hgrcセクションで、ignore = ~/.hgignore.global行を追加し、~/.hgignore.global行を含む.nfs*ファイルを作成します。

3
Gilles