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
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*
.