В последнее время на моей машине, похоже, произошло нечто более раздражающее, чем что-либо еще: каждый раз, когда я просматриваю каталог 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
.nfs*
связаны с NFS . Они появляются на NFS-сервере, когда файл удален, но все еще открыт клиентом. Сервер не должен удалять файл, потому что он все еще должен предоставить данные клиентам, у которых он открыт. С другой стороны, сервер должен удалить файл, потому что процесс, который удалил его, ожидает, что он больше не существует. Таким образом, сервер NFS переименовывает файл в имя, которое, мы надеемся, никого не волнует.
Бесполезно пытаться удалить их: вы удалите файл, который все еще открыт NFS-клиентом, поэтому сервер создаст только новый файл .nfs*
для хранения данных.
В конечном итоге клиент закроет файлы, и помет .nfs*
исчезнет.
Вы можете указать Mercurial игнорировать эти файлы. В разделе [ui]
вашего ~/.hgrc
добавьте строку ignore = ~/.hgignore.global
и создайте файл ~/.hgignore.global
, содержащий строку .nfs*
.