Feature #1683
Cache results of analysing projects
Status: | Resolved | Start date: | 12/09/2013 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | J. Moringen | % Done: | 100% | |
Category: | Processing Model | |||
Target version: | 0.5 |
Associated revisions
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
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
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>key' to
(analyze-git-branch/cached): likewise
(analyze-git-branch/maybe-cached): likewise
(clone-and-analyze-git-branch): use `%sub-directory
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.