Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
clpm
clpm
Commits
587db331
Commit
587db331
authored
May 19, 2020
by
Eric Timmons
Browse files
Handle *FETCH-REPO-AUTOMATICALLY* more sanely
parent
306b38a9
Changes
3
Show whitespace changes
Inline
Side-by-side
clpm/bundle.lisp
View file @
587db331
...
...
@@ -80,8 +80,7 @@
"Given a clpmfile instance, install all releases from its lock file, creating
the lock file if necessary."
(
with-bundle-session
(
clpmfile
)
(
let*
((
*fetch-repo-automatically*
(
not
(
config-value
:local
)))
(
clpmfile
(
get-clpmfile
clpmfile
))
(
let*
((
clpmfile
(
get-clpmfile
clpmfile
))
(
lockfile-pathname
(
clpmfile-lockfile-pathname
clpmfile
))
(
lockfile
nil
)
(
changedp
nil
))
...
...
@@ -112,8 +111,7 @@ the lock file if necessary."
(
defun
bundle-source-registry
(
&key
clpmfile
with-client-p
ignore-missing-releases
)
(
with-bundle-session
(
clpmfile
)
(
with-sources-using-installed-only
()
(
let*
((
*fetch-repo-automatically*
nil
)
(
lockfile-pathname
(
clpmfile-lockfile-pathname
clpmfile
))
(
let*
((
lockfile-pathname
(
clpmfile-lockfile-pathname
clpmfile
))
(
*vcs-project-override-fun*
(
make-vcs-override-fun
(
clpmfile-pathname
clpmfile
)))
lockfile
)
(
unless
(
probe-file
lockfile-pathname
)
...
...
@@ -134,8 +132,7 @@ the lock file if necessary."
update-projects
(
validate
(
constantly
t
))
update-systems
)
(
with-bundle-session
(
clpmfile
)
(
let*
((
*fetch-repo-automatically*
(
not
(
config-value
:local
)))
(
clpmfile
(
get-clpmfile
clpmfile
))
(
let*
((
clpmfile
(
get-clpmfile
clpmfile
))
(
lockfile-pathname
(
clpmfile-lockfile-pathname
clpmfile
))
(
*vcs-project-override-fun*
(
make-vcs-override-fun
(
clpmfile-pathname
clpmfile
)))
(
lockfile
nil
)
...
...
@@ -180,8 +177,7 @@ If WITH-CLIENT-P is non-NIL, the clpm-client system is available."
(
error
"COMMAND must be a string."
))
(
with-bundle-session
(
clpmfile
)
(
with-sources-using-installed-only
()
(
let*
((
*fetch-repo-automatically*
nil
)
(
clpmfile-pathname
(
clpmfile-pathname
clpmfile
))
(
let*
((
clpmfile-pathname
(
clpmfile-pathname
clpmfile
))
(
lockfile-pathname
(
clpmfile-lockfile-pathname
clpmfile
))
(
lockfile
(
load-lockfile
lockfile-pathname
))
(
cl-source-registry-form
(
context-to-asdf-source-registry-form
lockfile
...
...
clpm/repos/git.lisp
View file @
587db331
...
...
@@ -8,6 +8,7 @@
#:alexandria
#:clpm/archives
#:clpm/cache
#:clpm/config
#:clpm/http-client
#:clpm/log
#:clpm/repos/defs
...
...
@@ -226,13 +227,14 @@ ref is present locally, fetching or cloning the repo as necessary."
(
when
(
and
(
or
(
eql
ref-type
:branch
)
(
starts-with-subseq
"refs/heads/"
ref-name
)
(
not
(
ref-present-p
repo
ref
)))
(
not
(
config-value
:local
))
*fetch-repo-automatically*
)
(
with-retries
(
:max
10
:sleep
5
)
(
fetch-repo!
repo
))
;; Make sure the ref is actually present, raising an error otherwise.
(
unless
(
ref-present-p
repo
ref
)
(
error
"ref ~S is not present"
ref
))))
(
*fetch-repo-automatically*
(
(
and
(
not
(
config-value
:local
))
*fetch-repo-automatically*
)
;; Repo is not present at all, need to clone it.
(
with-retries
(
:max
10
:sleep
5
)
(
clone-repo!
repo
)
...
...
clpm/sources/config.lisp
View file @
587db331
...
...
@@ -7,6 +7,7 @@
(
:use
#:cl
#:alexandria
#:clpm/config
#:clpm/repos/defs
#:clpm/sources/clpi
#:clpm/sources/defs
#:clpm/sources/fs
...
...
@@ -39,7 +40,8 @@
(
defvar
*sources-use-installed-only-p*
nil
)
(
defun
call-with-sources-using-installed-only
(
thunk
)
(
let
((
*sources-use-installed-only-p*
t
))
(
let
((
*sources-use-installed-only-p*
t
)
(
*fetch-repo-automatically*
nil
))
(
funcall
thunk
)))
(
defmacro
with-sources-using-installed-only
(()
&body
body
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment