Commit Briefs
got: further fetch tweaks to prevent unintended fetches
Implement stsp's suggestion to only fetch remote's HEAD if the symref refs/remote/*/HEAD exists, and its target no longer matches the remote HEAD. This ensures users tracking a project won't miss a change in HEAD, while also fixing the issue reported by naddy where HEAD was fetched by default even though a specific, potentially less active, branch is cloned, resulting in a repository with more commits than necessary. In addition, unless 'got fetch -b <branch>' is used, the remote HEAD branch will be fetched if branches are not set in got.conf and there is no work tree to ascertain a branch, or said branches are not found on the server. ok stsp@
unbreak send.sh regress from recent ref-delta changes
fix argument order typo in flags passed to got_pack_create()
gotadmin pack: add a -D flag to force using ref-delta
Intended mostly for the regress suite, so we'll be able to test also the ref-delta code paths. ok stsp@
regress: allow to run only a subset of the test cases
This allows to run only the test cases named on the command line.
keep regress testname copypasta fix from 2a19e2e21a
s/fetch_branch/fetch_honor_wt_conf_bflag so we don't report the wrong test in the case of failure. The incorrect testname was introduced in 1cb79834ea as the result of too much copypasta. It was subsequently fixed in 2a19e2e21a but then backed-out.
backout got: always fetch remote HEAD except when -b is used
As pointed out by naddy, this behaviour is not ideal when users want to limit their repository to a particular branch which will diverge from HEAD over time, such as -stable branches. See https://marc.gameoftrees.org/mail/1676388048.8632_0.html
got: always fetch remote HEAD except when -b is used
Rather than only fetch HEAD when there are no branches set in got.conf and there is no branch to be inferred from a work tree, or said branches don't exist on the server, always fetch HEAD unless 'got fetch -b branch' is used. ok stsp@