Am 04.03.2018 um 01:08 schrieb Eli Schwartz via arch-general:
Yep -- more or less this. There is no way for git to fetch "all commits
since a given tag", and obviously `git describe` which is used in the
standard pkgver() function cannot describe the remote repository... not
to mention what happens when the repository has *no* tags, and git
rev-list --count HEAD depends on all commits since the repository was
initialized.
Then there is the fact that --depth, or even --single-branch (not that
this usually saves much space or time), will break on PKGBUILDs that use
`git cherry-pick` to backport fixes (more commonly seen in non-VCS
packages obviously).
All in all, there is simply no way to generically support shallow clones
in a generic way. The best you can do is take a given PKGBUILD, predict
what it needs, and perform the clone manually according to handpicked
criteria as makepkg will detect that clone and then simply fetch new
changes which respects a previous shallow clone designation.
Maybe a working option would be to implement fragmant variables for some
git options like depth, shallow-exclude and shallow-since, but that is
likely not trivial.
source=("one::git+https://repo.git#branch=master:shallow-exclude=v4.14"
"two::git+https://repo.git#branch=master:shallow-since=2017-12-30")
--
Andy