File: shadowfile.el.html
This package helps you to keep identical copies of files in more than one
place - possibly on different machines. When you save a file, it checks
whether it is on the list of files with "shadows", and if so, it tries to
copy it when you exit Emacs (or use the shadow-copy-files command).
Installation & Use:
Add clusters (if necessary) and file groups with shadow-define-cluster,
shadow-define-literal-group, and shadow-define-regexp-group (see the
documentation for these functions for information on how and when to use
them). After doing this once, everything should be automatic.
The lists of clusters and shadows are saved in shadow-info-file,
so that they can be remembered from one Emacs session to another,
even (as much as possible) if the Emacs session terminates
abnormally. The files needing to be copied are stored in
shadow-todo-file; if a file cannot be copied for any reason, it
will stay on the list to be tried again next time. The
shadow-info-file file should itself have shadows on all your
accounts so that the information in it is consistent everywhere,
but shadow-todo-file is local information and should have no
shadows.
If you do not want to copy a particular file, you can answer "no" and
be asked again next time you hit "C-x 4 s" or exit Emacs. If you do not
want to be asked again, use "M-x shadow-cancel", and you will not be asked
until you change the file and save it again. If you do not want to
shadow that file ever again, you can edit it out of the shadows
buffer. Anytime you edit the shadows buffer, you must type "M-x
shadow-read-files" to load in the new information, or your changes will
be overwritten!
Bugs & Warnings:
- It is bad to have two Emacsen both running shadowfile at the same
time. It tries to detect this condition, but is not always successful.
- You have to be careful not to edit a file in two locations
before shadowfile has had a chance to copy it; otherwise
"updating shadows" will overwrite one of the changed versions.
- It ought to check modification times of both files to make sure
it is doing the right thing. This will have to wait until
file-newer-than-file-p works between machines.
- It will not make directories for you, it just fails to copy files
that belong in non-existent directories.
Defined variables (12)
shadow-clusters | List of host clusters (see ‘shadow-define-cluster’). |
shadow-debug | Use for debug messages. |
shadow-homedir | Your home directory on this machine. |
shadow-info-file | File to keep shadow information in. |
shadow-inhibit-message | If non-nil, do not display a message when a file needs copying. |
shadow-inhibit-overload | If non-nil, shadowfile won’t redefine M-x save-buffers-kill-emacs. |
shadow-literal-groups | List of files that are shared between hosts. |
shadow-noquery | If t, always copy shadow files without asking. |
shadow-regexp-groups | List of file types that are shared between hosts. |
shadow-site-help | The help string describing a valid site. |
shadow-system-name | The identification for local files on this machine. |
shadow-todo-file | File to store the list of uncopied shadows in. |