Commits


mention 'gotadmin cleanup' wherever Git's garbage collector is mentioned


switch from SIMPLEQ to equivalent STAILQ macros The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp


new -I option for 'got status' to show files which match an ignore pattern


check for close(2) error in got_repo_close() and propagate errors up ok tracey


diff: reduce duplicate code Condense error checking to reduce a future diff moving those lines around; this pattern is already used in other parts of the tree. fine stsp ok tracey


rebase/histedit -l: error out if no backups for the requested branch exist


fix strftime return value check; found by jrick


ensure that old commits remain referenced after rebase and histedit Create automatic "backup" references which ensure that objects from the pre-rebase or pre-histedit state remain in the repository. A new -l option for 'got rebase' and 'got histedit' lists old commits. This makes it easier to recover from botched rebase or histedit operations. Removal of such objects currently requires got ref -d and git-gc. This will be made more convenient in the future. testing and ok jrick


Fix strftime(3) short buffer checks strftime(3) returns 0 if the buffer was too short to write the complete string (including NUL) and will never return more than maxsize-1. ok stsp


include remote branches in the output of 'got branch -l' This makes it easier to discover the existence of copies of remote branches in the local repository, and fixes a missing asterisk in 'got branch -l' while the work tree is switched to a remote branch. Prompted by feedback from helg, thanks!


got info: fix a pasto in an error message


simplify the error message shown when 'got rebase' has nothing to do


add 'got commit -F' option to commit with a log message stored in a file To avoid accidents commit -F opens the prepared log message in an editor so it can be reviewed before the commit is created. For non-interactive use the -N option is required in addition to -F. ok millert@


in 'got clone', allow -l together with -q, for consistency with 'got fetch'


make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere ok millert, naddy


let 'got clone' write gitconfig directives that match the generated got.conf


add a 'reference' directive to remote repositories in got.conf(5) Make use of this in 'got clone' to persist -R option arguments given on the command line in the cloned repository's got.conf(5) file.


add a 'fetch-all-branches' configuration setting to got.conf(5) Set fetch-all-branches in the got.conf(5) file created by 'got clone -a' in order to make a future 'got fetch' act like 'got fetch -a' by default.


store all branches passed via 'got clone -b' in got.conf(5) and git-config(1)


allow the 'got fetch' -l option together with the -q option Make use of this in tests to hide useless output from ssh(1).


make 'got clone' pin the fetched branch in got.conf(5) Avoids relying on the server-side HEAD ref by default during future fetches.


make use of a reflist object id map in 'got log' Impoves performance of 'got log' on the FreeBSD Git repo which can easily contain more than 4000 references.


switch reflist to TAILQ; insert elements more efficiently for sorted input ok naddy


Add a refs argument to got_repo_match_object_id(), replacing 'resolve_tags' Make use of this where possible to avoid re-reading references from disk. ok naddy


use size_t for loop indices to avoid signedness warnings; by emaste@freebsd Same change as 16aeacf7088d, for subdirectories other than lib/