Commit Briefs
add an initial implementation of gotadmin dump
gotadmin dump is used to export (part of) the history of the repository; at the moment it only generates git bundles (which are pack files with a header) but support to generate a fast-import stream is planned. ok/tweaks stsp and jamsek
add a lock for the cleanup operation
This adds the functions got_repo_cleanup_prepare() and _complete() to lock/unlock the repository to prevent multiple `gotadmin cleanup' or `git gc' operations to run in parallel. improvements and ok stsp@
gotadmin cleanup: remove redundant pack files
improvements and ok stsp@
include sha2.h too where sha1.h is included
In preparation for wide sha256 support; stsp@ agrees. Change done mechanically with find . -iname \*.[cy] -exec sam {} + X ,x/<sha1\.h>/i/\n#include <sha2.h>
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@
got/tog/gotadmin: pledge earlier
In the case of tog move setlocale(3) before pledge(2), as suggested by stsp. ok stsp@
replace got_repo_get_gitconfig_extensions with got_repo_has_extension
got_repo_get_gitconfig_extensions is only used in gotadmin to check if the preciousObjects extension is active; let's replace it with a function that just checks whether a certain extension is active. It simplifies future changes to the extensions handling. ok stsp@
got: minor refactor of got_pathlist_free() API
Accept flag parameter to optionally specify which pointers to free. This saves callers looping through the list to free pointers. ok + fix stsp@
sync usage with reality
The -h and -V/--version flags must be given before the command; with those flags the command is actually optional, but don't over-complicate the usage string with these nitpicks. ok/improvements stsp@
add gotadmin init -b <branch> to specify repo head ref
Similar to `git init -b`. Includes a change to `got import` behaviour such that "main" is no longer hardcoded by default; instead, we import to the branch resolved via the repository's HEAD reference unless `got import -b` is used, and only if HEAD cannot be resolved to a branch do we fallback to "main". includes fix plus ok from stsp@
Group options in accordance with style(9)
patch by Josiah Frentsos
move 'got init' command to 'gotadmin init'
This functionality is better suited for gotadmin because it is technically a server-side repository operation when we consider the 'got' tool as the client-side tool. I have plans to move 'got import' into gotadmin as well. ok op@