.nfs0000 & hellip; файлы продолжают появляться и исчезать при использовании 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
5
задан 21 September 2013 в 03:13

1 ответ

Файлы

.nfs* связаны с NFS . Они появляются на NFS-сервере, когда файл удален, но все еще открыт клиентом. Сервер не должен удалять файл, потому что он все еще должен предоставить данные клиентам, у которых он открыт. С другой стороны, сервер должен удалить файл, потому что процесс, который удалил его, ожидает, что он больше не существует. Таким образом, сервер NFS переименовывает файл в имя, которое, мы надеемся, никого не волнует.

Бесполезно пытаться удалить их: вы удалите файл, который все еще открыт NFS-клиентом, поэтому сервер создаст только новый файл .nfs* для хранения данных.

В конечном итоге клиент закроет файлы, и помет .nfs* исчезнет.

Вы можете указать Mercurial игнорировать эти файлы. В разделе [ui] вашего ~/.hgrc добавьте строку ignore = ~/.hgignore.global и создайте файл ~/.hgignore.global, содержащий строку .nfs*.

0
ответ дан 21 September 2013 в 03:13

Другие вопросы по тегам:

Похожие вопросы: