Commits


got-build-regress.sh: use -eq/-ne instead of ==/!= for numbers


regress: allow to run only a subset of the test cases This allows to run only the test cases named on the command line.


add -n to 'got commit' usage; patch by Josiah Frentsos


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@


got.1: tweak commit -A description. ok jamsek


got: drop commit -A $GOT_AUTHOR restriction As discussed with op and stsp on irc, this prevents the valid case of changing a commit's author to yourself during a histedit operation, and potentially blocks other valid use cases too. ok stsp@ and op@


got/tog/gotadmin: pledge earlier In the case of tog move setlocale(3) before pledge(2), as suggested by stsp. ok stsp@


send_tree_entries: simplify len computing


make 'got fetch -b branch' error reporting more helpful The patch to got-fetch-pack.c was written by stsp with only minor tweaks by me. Regress updated to account for the change in reporting. stsp's original got-fetch-pack.c diff ok op jamsek ok stsp@


regress: fetch -b/got.conf/wt/remote HEAD interaction The added test checks we honour the correct precedence of branches to be fetched, which is determined by: the -b flag; branches set in got.conf; the work tree's current branch; and the remote repository's HEAD branch. If a branch is specified with -b, only fetch this branch and if it does not exist, simply report to the user--do not fallback to other branches. Otherwise, if branches are either not set in got.conf or are set but do not exist on the server: - if invoked in a work tree, fallback to the work tree's current branch - if not in a work tree or the work tree's current branch does not exist on the server: - fallback to remote HEAD. With this, only the -b case can result in an unsuccessful fetch due to the requested branch(es) not existing on the server. All other cases will either fetch updates or report "Already up-to-date" (excepting errors). ok stsp@


special case 'got fetch -b <branch>' to only fetch <branch> As discussed on irc, this drops the implicit remote HEAD fetch when -b is used. got.1 has been updated to make the new fetch behaviour clear. ok stsp@


style


typo


style(9): function call in initialiser patch by Mikhail


lib/object_create.c: calloc object ids future fields added to the got_object_id will be implicitly zeroed instead of gibberish. ok stsp@


gotwebd: abort tree and blob as well


gotwebd: abort blame if the client disconnect midway thru Without setting err when the callback fails we continue the blame machinery.


make new log message modication check more robust; fixes regress fallout ok jamsek


garbage-collect redundant read_logmsg() parameter As identified and suggested by stsp, with the previous commit, 'strip_comments' is now always set thus no longer needed. ok stsp@


got: use timestamp and emptiness to validate log message As suggested by naddy: consider commit log messages valid provided the temp file time stamp has changed and the file is not empty. This heuristic provides the desired behaviour (i.e., reusing cherrypicked/backed-out log messages) that's currently provided but is simpler to grok. Improved by and ok stsp@


convert two files to utf8 ok stsp


add a TODO item for gotadmin pack command


open_blob: copy whole id not just the sha1