Commit Briefs
portable: release 0.113 (tags/0.113)
gotwebd: do not forget to initialize *ngroups argument for getgrouplist()
spotted by Denis Bodor, thanks!
improve redundant pack detection during cleanup
Instead of storing all referenced object IDs in a set, use the pack index of the large pack file we have created to check whether an object exists. Apply the modification time check only to packs which contain unreferenced objects. Otherwise we can leave many duplicate pack files behind. I observed this when all refs were packed and the packed-refs file was days old. ok op@
tweak 'got status' and 'got add' ignores handling for better git compatibility
Skip past leading slashes in ignore patterns. In gitignore(7), these trigger the behavior got has by default. Add regress test. Lift documentation of ignore patterns to a subsection, referenced by the `add` and `status` docs. Refine documentation of ignore patterns to discuss the extensions to glob(7) as a whole, and then list caveats relative to git(1) and cvs(1). Add a file to the test worktree in the main gitignore regress test in order to register a known delta to gitignore(7) that was ambiguously documented previously: for the pattern a/**/foo, git will ignore a/foo, but got will not. Patch by: Evan Silberman
portable: release 0.112 (tags/0.112)
stop opening the repository when opening a work tree
Opening a bunch of files in /tmp for pack temp files and opening the repository just to validate the work tree's base-commit ID is overkill. Simply parse the ID directly. If the commit object no longer exists we will run into another error sooner or later. The commit is already protected by the work tree reference. If it is missing then something has badly gone wrong. Doing less work when opening work trees speeds up 'got status' a bit. As pointed out by Kyle this also avoids running got-read-gitconfig twice when opening both a repository and a work tree. ok by op@ and Kyle Ackerman
add comments explaining that .got/base-commit needs hash algo information
Hopefully, if we ever bump the work tree format in the future we will see these comments and sneak in a change to the .got/base-commit file in order to record the hash algorithm of the base commit ID.
Plug memory leaks in some libexecs
This occurred when these particular libexecs get an imsg of type GOT_IMSG_STOP. They attempt to exit the main loop and leak the last imsg they received. ok stsp@ op@
Plug a memory leak in gitconfig.c
conf_parse_line frees *section before allocating a new one, which leaks *section on the last iteration of conf_parse. ok stsp@
fix unrelated errors being reported if a histedit operation is aborted
This avoids errors such as "object not found" or "reference not found" when exiting the histedit script editor without making any changes to the script. got_worktree_histedit_abort() was filling up error.c error buffers with unrelated errors that were simply being ignored. I now see the expected "no changes made to histedit script" error. Issue reported by ninjin on IRC
gotwebd: inherit all user groups
Required if repos_path is not owned by the _gotwebd group. ok stsp@