Hash :
b8f08ef9
Author :
Thomas de Grivel
Date :
2020-03-28T14:24:41
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
# repo
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.
## Quickstart
``` SH
curl -O https://github.com/common-lisp-repo/repo/blob/master/install-repo.sh
sh install-repo.sh
```
``` Common-Lisp
;; install Thot
(repo:install :thot)
;; udpate ASDF
(repo:update :asdf)
```
## Manifest
https://github.com/common-lisp-repo/repo/blob/master/repo.manifest
## Installation
This is what the `install-repo.sh` script does :
Install ASDF from git :
``` SH
mkdir -p ~/common-lisp/fare
cd ~/common-lisp/fare
git clone https://github.com/fare/asdf.git
cd asdf
make
```
Install REPO from git :
``` SH
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 :
``` Common-Lisp
(load "~/common-lisp/fare/asdf/build/asdf")
(load "~/common-lisp/common-lisp-repo/repo/repo")
(repo:boot)
```
Repo integrates with ASDF :
``` Common-Lisp
(asdf:load-system :thot)
```
To update all repositories :
``` Common-Lisp
(repo:update repo:*manifest*)
```
Other functions :
``` Common-Lisp
(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
```
## Version informations
This version only supports git repositories and relies on /bin/sh.
Next releases will support other VCS / systems.
SBCL and CLISP are supported.
## TODO
* use UIOP:RUN-PROGRAM
* git tags and branches
* CVS
* subversion
* bzr
* darcs
* mercurial