Merge pull request #15542 from hmarr/sparse-checkout-cone-mode

This commit is contained in:
Carlo Cabrera 2023-06-11 03:06:47 +08:00 committed by GitHub
commit a56a270707
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -835,6 +835,12 @@ class GitDownloadStrategy < VCSDownloadStrategy
# constructor calls `cache_tag` and sets the cache path.
@only_path = meta[:only_path]
if @only_path.present?
# "Cone" mode of sparse checkout requires patterns to be directories
@only_path = "/#{@only_path}" unless @only_path.start_with?("/")
@only_path = "#{@only_path}/" unless @only_path.end_with?("/")
end
super
@ref_type ||= :branch
@ref ||= "master"
@ -1075,9 +1081,12 @@ class GitDownloadStrategy < VCSDownloadStrategy
command! "git",
args: ["config", "core.sparseCheckout", "true"],
chdir: cached_location
command! "git",
args: ["config", "core.sparseCheckoutCone", "true"],
chdir: cached_location
(git_dir/"info").mkpath
(git_dir/"info"/"sparse-checkout").atomic_write("#{@only_path}\n")
(git_dir/"info/sparse-checkout").atomic_write("#{@only_path}\n")
end
end