• Properties

  • Git HTTP https://git.kmx.io/kmx.io/repo.git
    Git SSH git@git.kmx.io:kmx.io/repo.git
    Public access ? public
    Description

    Source repository utilities in Common Lisp

    Users
    thodg
    Tags

  • README.md

  • 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

      curl -O https://github.com/kmx-io/repo/blob/master/install-repo.sh
      sh install-repo.sh
      ;; install Thot
      (repo:install :thot)
    
      ;; update ASDF
      (repo:update :asdf)

    Manifest

    https://github.com/kmx-io/repo/blob/master/repo.manifest

    Installation

    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/kmx-io
      cd ~/common-lisp/kmx-io
      git clone https://github.com/kmx-io/repo.git
      cd ~/common-lisp
      ln -s kmx-io/repo/repo.manifest

    In your Common Lisp implementation startup file :

      (load "~/common-lisp/fare/asdf/build/asdf")
      (load "~/common-lisp/kmx-io/repo/repo")
      (repo:boot)

    Usage

    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

    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