mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-23 07:19:15 +00:00
Add detailed documentation about lock files
* doc/emacs/files.texi (Interlocking): Point user at detailed file locking description in lisp reference manual. Add index entry for '.#' to improve disoverability of information about locking. * doc/lispref/files.texi (File Locks): Describe in detail what the form of the lock file is. Add index entry for '.#' to improve disoverability of information about locking. * src/filelock.c (create-lockfiles): Add cross reference to file locking in user manual and to 'lock-buffer'. Add string '.#' to help users find the doc string.
This commit is contained in:
parent
e5471b2381
commit
9188291f7a
@ -766,13 +766,16 @@ file.
|
||||
|
||||
@findex ask-user-about-lock
|
||||
@cindex locking files
|
||||
@cindex .#, lock file names
|
||||
@cindex file locking
|
||||
When you make the first modification in an Emacs buffer that is
|
||||
visiting a file, Emacs records that the file is @dfn{locked} by you.
|
||||
(It does this by creating a specially-named symbolic link@footnote{If
|
||||
your file system does not support symbolic links, a regular file is
|
||||
used.} with special contents in the same directory.) Emacs removes the lock
|
||||
when you save the changes. The idea is that the file is locked
|
||||
whenever an Emacs buffer visiting it has unsaved changes.
|
||||
used.} with special contents in the same directory. @xref{File
|
||||
Locks,,, elisp} for more details.) Emacs removes the lock when you
|
||||
save the changes. The idea is that the file is locked whenever an
|
||||
Emacs buffer visiting it has unsaved changes.
|
||||
|
||||
@vindex create-lockfiles
|
||||
You can prevent the creation of lock files by setting the variable
|
||||
|
@ -712,6 +712,7 @@ with-temp-buffer,, The Current Buffer}.
|
||||
@section File Locks
|
||||
@cindex file locks
|
||||
@cindex lock file
|
||||
@cindex .#, lock file names
|
||||
|
||||
When two users edit the same file at the same time, they are likely
|
||||
to interfere with each other. Emacs tries to prevent this situation
|
||||
@ -720,8 +721,17 @@ modified.
|
||||
Emacs can then detect the first attempt to modify a buffer visiting a
|
||||
file that is locked by another Emacs job, and ask the user what to do.
|
||||
The file lock is really a file, a symbolic link with a special name,
|
||||
stored in the same directory as the file you are editing. (On file
|
||||
systems that do not support symbolic links, a regular file is used.)
|
||||
stored in the same directory as the file you are editing. The name is
|
||||
constructed by prepending @file{.#} to the filename of the buffer.
|
||||
The target of the symbolic link will be of the form
|
||||
@code{@var{user}@@@var{host}.@var{pid}:@var{boot}}, where @var{user}
|
||||
is replaced with the current username (from @code{user-login-name}),
|
||||
@var{host} with the name of the host where Emacs is running (from
|
||||
@code{system-name}), @var{pid} with Emacs's process id, and @var{boot}
|
||||
with the time since the last reboot. @code{:@var{boot}} is omitted if
|
||||
the boot time is unavailable. (On file systems that do not support
|
||||
symbolic links, a regular file is used instead, with contents of the
|
||||
form @code{@var{user}@@@var{host}.@var{pid}:@var{boot}}.)
|
||||
|
||||
When you access files using NFS, there may be a small probability that
|
||||
you and another user will both lock the same file simultaneously.
|
||||
|
@ -849,7 +849,10 @@ syms_of_filelock (void)
|
||||
Vtemporary_file_directory = Qnil;
|
||||
|
||||
DEFVAR_BOOL ("create-lockfiles", create_lockfiles,
|
||||
doc: /* Non-nil means use lockfiles to avoid editing collisions. */);
|
||||
doc: /* Non-nil means use lockfiles to avoid editing collisions.
|
||||
The name of the (per-buffer) lockfile is constructed by prepending a
|
||||
'.#' to the name of the file being locked. See also `lock-buffer' and
|
||||
Info node `(emacs)Interlocking'. */);
|
||||
create_lockfiles = 1;
|
||||
|
||||
defsubr (&Sunlock_buffer);
|
||||
|
Loading…
Reference in New Issue
Block a user