Homepage: https://github.com/dochang/elpa-clone
Author: ZHANG Weiyi
Updated:
Clone ELPA archive
[](http://melpa.org/#/elpa-clone)
[](http://stable.melpa.org/#/elpa-clone)
[](https://github.com/dochang/elpa-clone/actions/workflows/ci.yml)
[](https://dl.circleci.com/status-badge/redirect/gh/dochang/elpa-clone/tree/master)
[](https://github.com/dochang/elpa-clone/blob/master/LICENSE)
[](https://saythanks.io/to/dochang)
Mirror an ELPA archive into a directory.
Prerequisites:
- Emacs 24.4 or later
- cl-lib
- rsync (optional, but recommended)
Installation:
`elpa-clone` is available on [MELPA] and [el-get].
[MELPA]: https://melpa.org/
[el-get]: https://github.com/dimitri/el-get
To install `elpa-clone' from git repository, clone the repo, then add the
repo dir into `load-path'.
Usage:
To clone an ELPA archive `http://host/elpa' into `/path/to/elpa', invoke
`elpa-clone':
(elpa-clone "http://host/elpa" "/path/to/elpa")
`elpa-clone' can also be invoked via `M-x'.
You can customize download interval via `elpa-clone-download-interval'. But
note that the *real* interval is `(max elpa-clone-download-interval 5)'.
### Prefer rsync
Some ELPA archives can more efficiently be cloned using rsync:
(elpa-clone "elpa.gnu.org::elpa/" "/path/to/elpa")
(elpa-clone "rsync://melpa.org/packages/" "/path/to/elpa")
(elpa-clone "rsync://stable.melpa.org/packages/" "/path/to/elpa")
Currently, only the following archives support rsync:
- GNU ELPA
- MELPA
- MELPA Stable
By default, `elpa-clone` selects the appropriate sync method based on the
upstream url, but you can also specify the method you want:
(elpa-clone "foo/" "bar/" :sync-method 'rsync)
(elpa-clone "foo::bar/" "/path/to/elpa" :sync-method 'local)
(elpa-clone "rsync://foo/bar/" "/path/to/elpa" :sync-method 'url)
Available methods are:
- `rsync`: use rsync (recommended)
- `url`: use the `url` library
- `local`: treat upstream as a local directory
- `nil`: choose a method based on upstream
Note:
`elpa-clone' will **NOT** overwrite existing packages but will clean
outdated packages before downloading new packages. If a package file is
broken, remove the file and call `elpa-clone' again.
License:
GPLv3