portable: running tests when shell is dash Ubuntu's default shell is dash, when using /bin/sh. The portable nature of got is such that "$OSTYPE" to determine the host type (linux, bsd, etc.) is bash-specific and is not part of POSIX. autotools already provide a mechanism for determining the underlying platform type, and PLATFORM is already a subst value. Therefore, let the -portable parts of the regress test-suite use $PLATFORM to look at the underlying OS type. The tests themselves already expect /bin/sh to be POSIX-compliant in all other areas, so there should be no need to change the #! lines.

switch tog ref view's sort order command key to "o" instead of "s" The letter "o" does not overlap with existing options of 'got ref' and is also used by mutt(1) for this purpose.

portable: include worktree_open Make worktree_open part of the build.

add got branch -t option to sort listed branches by modification time

fall back to comparison by name when refs have the same timestamp This fixes an issue where some references were missing from lists of references sorted by timestamp.

add got ref -t option to sort listed references by modification time

make tog use got_reflist_sort() instead of reloading refs while sorting them

implement got_reflist_sort() which sorts a ref list in-place

fix uninitialized error from got_ref_cmp_by_commit_timestamp_descending()

allow sorting references by timestamp in tog

preverse binary files during updates and merges

let gotadmin find the repository automatically if invoked in a work tree Move a small amount of code from worktree.c to a new file worktree_open.c, which contains everything required to open and close a work tree and inspect some of its basic parameters. This can be used by gotadmin. ok tracey

gotweb does not actually use anything from worktree.c or fileindex.c

Fix mandoc HTML rendering for command aliases Replace hand-rolled parentheses with the proper mdoc(7) macro, otherwise the closing ")" ends up inside the command description. Reported by Josh Rickmar, thanks!

document new 'got rebase' behaviour when commits do not need to be rebased

switch branches during noop rebases Always update to the specified branch even if the branch is already rebased (no commits needed to be rebased, and the branch does not need a fast forward). With the old behavior of erroring and staying on the current branch, I sometimes found myself ignoring the error message, treating it as information and assuming the branch update, and later on committing on top of origin/main instead of the main branch. feedback and ok stsp

remove unused variables to fix LLVM 13 warnings; ok stsp

use up to 128 delta chain elements again; creates smaller packs at same speed

try only 3 delta base candidates instead of 10 to speed up packing Tests by kn, thomas_adam and myself made on various repositories indicate that 3 is a good choice. Tyring 10 deltas is much slower and does not result in significantly smaller pack files.

README: mention bison as a required component Although will for the presence of bison, the READMEs didn't say that was a required program. Patch from Carlos Torres

bump version number

changes for 0.63

set in diff3.c's duplicate() even if the file contains no newlines

always initialize output parameter "n" of get_line() in diff3.c

tog: add Ctrl-n/Ctrl-p shortcuts scrolling one line down/up; patch by Omar Polo