使用 Mercurial 时,.nfs0000... 文件不断出现和消失

使用 Mercurial 时,.nfs0000... 文件不断出现和消失

最近,我的机器上似乎发生了一些比其他任何事情都更烦人的事情:每次我在目录中查看 Mercurial 更改时,它都会告诉我有两个.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

答案1

.nfs*文件与NFS。当文件被删除但仍由客户端打开时,它们会出现在 NFS 服务器上。服务器不能删除该文件,因为它仍然需要向打开它的客户端提供数据。另一方面,服务器必须删除该文件,因为删除它的进程认为它不再存在。因此 NFS 服务器将文件重命名为希望没人关心的名称。

尝试删除它们是没有用的:您将删除一个仍然由 NFS 客户端打开的文件,因此服务器只会创建一个新.nfs*文件来保存数据。

最终,客户端将关闭文件,并且.nfs*文件内容也会消失。

您可以指示 Mercurial 忽略这些文件。在[ui]部分中~/.hgrc,添加 行,并创建包含 行 的ignore = ~/.hgignore.global文件。~/.hgignore.global.nfs*

相关内容