Perché emacs crea collegamenti simbolici temporanei per i file modificati?

Quando modifico un buffer, Emacs crea automaticamente un collegamento simbolico temporaneo nella stessa directory del file che si sta modificando (ad es. Foo.c):

.#foo.c -> user@host.12345:1296583136 

dove ‘12345’ è il PID di Emacs (non so cosa significhi l’ultimo numero).

Perché Emacs crea questi collegamenti e come posso impedirgli di farlo?

Si noti che ho distriggersto la modalità di salvataggio automatico (modalità di salvataggio automatico Mx auto-save-mode ) e i file di backup disabilitati ( Mx set-variable -> make-backup-files -> nil ). Quando salvi un buffer modificato, o annullo le modifiche, il link simbolico scompare.

In particolare, sto cercando di impedire a Emacs di creare questi collegamenti perché causano la modifica del timestamp della directory, il che fa sì che il nostro sistema di ricostruzione ricostruisca un intero modulo invece di compilare e colbind per un file modificato: /

Grazie per qualsiasi input!


Aggiornamento: per impedire a Emacs di creare file src/filelock.c permanente, è ansible modificare src/filelock.c e creare un binario personalizzato:

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

Aggiornamento 2: la risposta di Arne è corretta. Ora è ansible disabilitare i file di blocco nell’ultima versione di Emacs (24.3.1), aggiungendo questo al file .emacs:

 (setq create-lockfiles nil) 

Aggiornamento: Emacs 24.3 è stato rilasciato con il pieno supporto per questa nuova impostazione!

Nel trunk corrente di emacs, puoi semplicemente personalizzare la variabile create-lockfiles:

 Ch v create-lockfiles 

Documentazione: non nulla significa usare lockfiles per evitare di modificare le collisioni.

Nel tuo file di init, puoi impostare

 (setq create-lockfiles nil) 

Prendi via

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

(L’ho scoperto, perché ho deciso di triggersrmi e ho solo aggiunto un’opzione come quella … :))

Il collegamento simbolico è il sistema di interblocco dei file di emacs: il link simbolico indica che un’istanza di emacs sta modificando questo file. Se un’altra istanza tenta di modificare lo stesso file, emacs emetterà un avviso. Vedi http://www.gnu.org/software/emacs/manual/html_node/emacs/Interlocking.html

Questo non ha nulla a che fare con il salvataggio automatico.

Non riesco a trovare come modificare o disabilitare il blocco dei file da emacs.