Pourquoi emacs crée-t-il des liens symboliques temporaires pour les fichiers modifiés?

Lorsque je modifie un tampon, Emacs crée automatiquement un lien symbolique temporaire dans le même répertoire que le fichier en cours d’édition (par exemple, foo.c):

.#foo.c -> [email protected]:1296583136 

où ‘12345’ est le PID d’Emacs (je ne sais pas ce que signifie le dernier numéro).

Pourquoi Emacs crée-t-il ces liens et comment les empêcher?

Notez que j’ai désactivé le mode d’enregistrement automatique (mode de sauvegarde automatique Mx auto-save-mode ) et les fichiers de sauvegarde désactivés ( Mx set-variable -> make-backup-files -> nil ). Lorsque je sauvegarde un tampon modifié ou annule les modifications, le lien symbolique disparaît.

En particulier, j’essaie d’empêcher Emacs de créer ces liens car ils entraînent la modification de l’horodatage du répertoire, ce qui oblige notre système de compilation à reconstruire un module entier au lieu de comstackr et de lier un fichier modifié: /

Merci pour toute consortingbution!


Mise à jour: Afin d’empêcher Emacs de créer des fichiers de locking de manière permanente, vous pouvez modifier src/filelock.c et créer un fichier binary personnalisé:

 void lock_file (fn) Lisp_Object fn; { return; // Unused code below... } 

Mise à jour 2: La réponse d’Arne est correcte. Il est maintenant possible de désactiver les fichiers de locking dans la dernière version d’Emacs (24.3.1), en ajoutant ceci à votre fichier .emacs:

 (setq create-lockfiles nil) 

Mise à jour: Emacs 24.3 a été publié avec un support complet pour ce nouveau paramètre!

Dans le tronc actuel d’emacs, vous pouvez simplement personnaliser la variable create-lockfiles:

 Ch v create-lockfiles 

Documentation: signifie non-Nil d’utiliser des fichiers de locking pour éviter de modifier les collisions.

Dans votre fichier init, vous pouvez définir

 (setq create-lockfiles nil) 

L’obtenir via

 bzr branch bzr://bzr.savannah.gnu.org/emacs/trunk emacs-trunk make src/emacs 

(J’ai découvert ça parce que j’ai décidé de devenir actif et juste d’append une option comme ça moi-même :))

Le lien symbolique est le système de locking de fichier d’emacs: le lien symbolique indique qu’une instance d’emac est en train de modifier ce fichier. Si une autre instance tente de modifier le même fichier, emacs émettra un avertissement. Voir http://www.gnu.org/software/emacs/manual/html_node/emacs/Interlocking.html

Cela n’a rien à voir avec l’enregistrement automatique.

Je ne trouve pas comment modifier ou désactiver le locking des fichiers dans emacs.