web-dev-qa-db-fra.com

Les fichiers .nfs0000 ... continuent à s'afficher et à disparaître lors de l'utilisation de Mercurial

Dernièrement, quelque chose semble plus agaçant sur ma machine: chaque fois que je cherche dans un répertoire des modifications de Mercurial, il me parle de deux fichiers .nfs#### qui disparaissent immédiatement. #### semble s'incrémenter à chaque retour en arrière.

Est-ce que mon ordinateur devient fou? Est-ce que Mercurial est lié? Système de fichiers lié (il s’agit d’un lecteur réseau)?

$ 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

Les fichiers .nfs* sont liés à NFS . Ils apparaissent sur un serveur NFS lorsqu'un fichier est supprimé, mais est toujours ouvert par un client. Le serveur ne doit pas supprimer le fichier car il doit toujours fournir les données aux clients qui l'ont ouvert. D'autre part, le serveur doit supprimer le fichier car le processus qui l'a supprimé ne devrait plus exister. Ainsi, le serveur NFS renomme le fichier en un nom dont personne ne se soucie, espérons-le.

Il est inutile d'essayer de les supprimer: vous supprimeriez un fichier toujours ouvert par un client NFS, de sorte que le serveur ne crée qu'un nouveau fichier .nfs* pour conserver les données.

Finalement, le client fermera les fichiers et les excréments .nfs* disparaîtront.

Vous pouvez demander à Mercurial d'ignorer ces fichiers. Dans la section [ui] de votre ~/.hgrc, ajoutez la ligne ignore = ~/.hgignore.global et créez le fichier ~/.hgignore.global contenant la ligne .nfs*.

3
Gilles