Feature #1683

Cache results of analysing projects

Added by J. Moringen over 10 years ago. Updated over 7 years ago.

Status:ResolvedStart date:12/09/2013
Priority:NormalDue date:
Assignee:J. Moringen% Done:

100%

Category:Processing Model
Target version:0.5

Associated revisions

Revision 5c636107
Added by J. Moringen over 8 years ago

Git cacheing and better cloning in src/analysis/git.lisp

refs #1683

  • src/analysis/git.lisp (clone-git-repository): new function; clone a
    git directory, potentially as a mirror
    (update-git-repository): new function; fetch remote date into an
    existing git repository
    (ensure-updated-git-repository): new function; clone or update a git
    repository
    (git-cache): new structure; thread-safe table mapping git urls to
    cache directories
    (git-cache): new variable; can be bound to the git cache
    (call-with-git-cache): new function; call a thunk with established git
    cache
    (with-git-cache): new macro; execute body with established git cache
    (clone-git-repository/cached): new function; clone/update cached
    mirror, then clone from cache
    (clone-git-repository/maybe-cached): new function; clone from cache or
    directly depending on whether a cache directory has been specified
    (analyze-git-branch): new function; helper for analyzing
    (clone-and-analyze-git-branch): new function; helper for cloning and
    analyzing
    (analyze uri eql :git): call `clone-and-analyze-git-branch'
  • src/commandline-interface/main.lisp (analyze-project): accept
    cache-directory keyword parameter; pass to `analyze'
    (analyze-projects): accept cache-directory keyword parameter; pass to
    `analyze-project'; setup git cache
    (update-synopsis): added cache-directory option
    (main): pass cache directory to analyze-projects

Revision 6663446c
Added by J. Moringen almost 8 years ago

Caching of analysis results for git in src/analysis/git.lisp

refs #1683

  • src/analysis/util.lisp (header): updated copyright
    (run): return command output
  • src/analysis/git.lisp (%run-git): cosmetic change
    (clone-git-repository/maybe-cached): return git commit key for cloned
    repository
    (analyze-git-branch/cached): new function; restore analysis results
    from cache
    (analyze-git-branch/cache): new function; store analysis results into
    cache
    (analyze-git-branch/maybe-cached): new function; perform analysis or
    use cached results
    (clone-and-analyze-git-branch): use cached analysis results if
    possible
    (git-remote-commit-key): new function; obtain commit key for a given
    ref from remote repository
    (git-directory-commit-key): obtain commit key from a local repository
    directory
    (%git-commit->key): new function; turn git commit into unique key
  • jenkins.project.asd (system jenkins.project): added system dependency
    on cl-store

Revision 487a9315
Added by J. Moringen almost 8 years ago

Fixed caching in presence of sub-directories in src/analysis/git.lisp

refs #1683

  • src/analysis/git.lisp (analyze-git-branch): renamed keyword parameter
    commit-key > key
    (analyze-git-branch/cached): likewise
    (analyze-git-branch/maybe-cached): likewise
    (clone-and-analyze-git-branch): use `%sub-directory
    >key' to
    incorporate sub-directory into cache key
    (%sub-directory->key): new function; incorporate sub-directory into
    cache key
  • jenkins.project.asd (system jenkins.project): added system dependency
    on ironclad

History

#1 Updated by J. Moringen almost 10 years ago

Related to downstream issue http://opensource.cit-ec.de/issues/250.

#2 Updated by J. Moringen almost 10 years ago

  • Target version changed from 0.3 to 0.4

#3 Updated by J. Moringen about 9 years ago

  • Target version changed from 0.4 to 0.5

#4 Updated by J. Moringen over 8 years ago

  • Status changed from New to In Progress
  • % Done changed from 0 to 50

#5 Updated by J. Moringen almost 8 years ago

  • % Done changed from 50 to 80

#6 Updated by J. Moringen over 7 years ago

  • Status changed from In Progress to Resolved
  • % Done changed from 80 to 100

I think the current implemented is reasonably complete. Further improvements can be tracked in separate issues.

Also available in: Atom PDF