.nfs0000… os arquivos continuam aparecendo e desaparecendo ao usar o Mercurial

4

Ultimamente, algo parece ter acontecido na minha máquina que é mais irritante do que qualquer outra coisa: toda vez que eu olho em um diretório para mudanças no Mercurial, ele me fala sobre dois arquivos .nfs#### que imediatamente desaparecem. #### parece aumentar a cada vez que eles piscam de volta.

Meu computador está ficando maluco? Isso é relacionado ao Mercurial? Sistema de arquivos relacionado (esta é uma unidade montada em rede)?

$ 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
    
por Nick T 21.09.2013 / 01:02

1 resposta

2

.nfs* de arquivos estão relacionados a NFS . Eles aparecem em um servidor NFS quando um arquivo é excluído, mas ainda é aberto por um cliente. O servidor não deve excluir o arquivo porque ainda precisa fornecer os dados para os clientes que o abrem. Por outro lado, o servidor deve excluir o arquivo porque o processo que foi excluído espera que ele não exista mais. Então o servidor NFS renomeia o arquivo para um nome que esperamos que ninguém se importe.

Não adianta tentar excluí-los: você estaria excluindo um arquivo que ainda está aberto por um cliente NFS, portanto, o servidor só criaria um novo arquivo .nfs* para manter os dados.

Eventualmente, o cliente fechará os arquivos e os .nfs* desaparecerão.

Você pode instruir o Mercurial a ignorar esses arquivos. Na seção [ui] do seu ~/.hgrc , adicione a linha ignore = ~/.hgignore.global e crie o arquivo ~/.hgignore.global contendo a linha .nfs* .

    
por Gilles 21.09.2013 / 01:13