Common interface for version control systems.
Repo allows you to use source repositories directly as ASDF-installable packages and keep them synced with upstream for development purposes.
Each repo is installed in a subdirectory. Github repositories are installed in the user subdirectory.
curl -O https://github.com/common-lisp-repo/repo/blob/master/install-repo.sh
sh install-repo.sh
;; install Thot
(repo:install :thot)
;; udpate ASDF
(repo:update :asdf)
https://github.com/common-lisp-repo/repo/blob/master/repo.manifest
This is what the install-repo.sh
script does :
Install ASDF from git :
mkdir -p ~/common-lisp/fare
cd ~/common-lisp/fare
git clone https://github.com/fare/asdf.git
cd asdf
make
Install REPO from git :
mkdir -p ~/common-lisp/common-lisp-repo
cd ~/common-lisp/common-lisp-repo
git clone https://github.com/common-lisp-repo/repo.git
cd ~/common-lisp
ln -s common-lisp-repo/repo/repo.manifest
In your Common Lisp implementation startup file :
(load "~/common-lisp/fare/asdf/build/asdf")
(load "~/common-lisp/common-lisp-repo/repo/repo")
(repo:boot)
Repo integrates with ASDF :
(asdf:load-system :thot)
To update all repositories :
(repo:update repo:*manifest*)
Other functions :
(repo:repo "github:thodg/repo") ;; Define repository by URI
(repo:repo "thodg/repo") ;; Find repository by dir/name
(repo:repo :repo) ;; Find repository by name
(setf repo:*repo-dir* "/tmp/repo-test") ;; Change installation directory
(repo:install "github:thodg/repo") ;; Install repository by URI
(repo:install "thodg/repo") ;; Install repository by dir/name
(repo:install :repo) ;; Install repository by name
(repo:update "github:thodg/repo") ;; Update repository by URI
(repo:update "thodg/repo") ;; Update repository by dir/name
(repo:update :repo) ;; Update repository by name
repo:*repos* ;; List of defined repositories
(repo:clear-repos) ;; Clear all definitions
This version only supports git repositories and relies on /bin/sh. Next releases will support other VCS / systems.
SBCL and CLISP are supported.