Skip to content
  • Duncan Coutts's avatar
    Add a new VCS abstration · c738ddd1
    Duncan Coutts authored and Alexis Williams's avatar Alexis Williams committed
    This is intended for two things:
     * replacing the Brancher abstraction backing the current 'get -s' impl
     * the basis for source repo support in cabal.package files
    
    The latter is a bit more complex as it requires not just fetching a
    fresh repo, but syncing a repo to a specific tag, commit or branch. The
    approach assumes that we keep a cached copy so that most changes are
    cheap and it optimises things by allowing sharing data between multiple
    commits of the same repo, and multiple packages within the same repo.
    
    For example, it will be possible to specify the same repo in the
    cabal.project file for more than one package, and have those packages
    either in separate subdirs of the same commit, or on different
    commits/tags/branches. In the former case we use a single checkout
    while in the latter case we use two checkouts, but share repo data as
    far as possible.
    c738ddd1