.nfs0000... файлы продолжают появляться и исчезать при использовании Mercurial
В последнее время, похоже, что-то случилось на моей машине, что раздражает больше, чем что-либо еще: каждый раз, когда я просматриваю каталог 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*
,