Commit Briefs

59d7decb8c Stefan Sperling

document restrictions imposed on reference names in gotsys.conf (main)


00fc2bb909 Stefan Sperling

introduce gotsys_ref_name_is_valid()

We need to enforce additional restrictions on reference names specified in gotsys.conf in order to prevent escaping to arbitrary gotd.conf syntax. Add test coverage.


97b40d32ed Stefan Sperling

remove hidden gotsys.conf draft text about a "publish" directive

This directive will not be implemented in the final design. Instead we will be adding authentication to gotwebd with associated config syntax.



f6ff692887 Stefan Sperling

remove (undocumented) support for setting an SMTP relay in gotsys.conf

SMTP relays for email notifications will only be configured server-side.


0524cad60d Stefan Sperling

remove a TODO item that is done


64ae849302 Stefan Sperling

do not clobber changes staged via stage -p during 'got revert'

While we must install staged blob contents during revert if there are staged changes, the base blob ID recorded in the file index must always reflect the actual base blob from the base commit. Setting the base blob ID to that of a staged blob causes problems. The staged blob's ID is tracked in a separate field. ok op@


2f46ecd27c Stefan Sperling

fix test failures related to clone -a introduced with previous commits

Use a dedicated flag to keep track of HEAD ref creation state, rather than checking pe == NULL.





55ff12a650 Stefan Sperling

pick a default branch to clone when the server does not advertise HEAD symref

Avoids the need to use got clone -b to get anything at all from a server implementation which does not advertise a HEAD symref. Patch by martijn@


fe389d9e9b Stefan Sperling

fix gotd branch protection rejecting commits that already exist on server

When a reference update sends an empty pack file because the objects already exist on a different branch, gotd was wrongly rejecting the reference update. The logic which protects references from moving kicked in, but didn't account for this particular case. Run a YCA check to ensure the client is only appending new commits to the branch and allow the ref update to proceed if so. Add test coverage. Problem reported by martijn@


1247ca2fed Stefan Sperling

fix bogus "bad offset in pack file" errors wrongly raised by gotd

Because copy_ref_delta() was forgetting to update the *outsize output parameter, when clients sent ref-deltas gotd was miscalculating the on-disk size of the pack file and would report "bad offset in pack file" if an object was stored at an offset beyond the miscalculated smaller size.


72edd51a1a Stefan Sperling

add a TODO item for a bug between stage -p and revert


4f35873aad Stefan Sperling

make our pack-refs header format align with the expectations of git 2.50.0

Fixes regress failures due to 'git gc' complaining, as of 2.50.0: '# pack-refs with:' does not start with '# pack-refs with: ' reported by naddy@ ok op@


bcd8b7f9af Stefan Sperling

bump version number


59e093ad4f Stefan Sperling

CHANGES for 0.115 (tags/0.115)


62994af7ea Stefan Sperling

fix segfault due to double-free in got-read-gotconfig

Could be triggered by running 'got fetch' with a "send" block in got.conf. The functions free_fetch_config() and free_send_config() were freeing data via the global "remote" variable instead of their own argument as intended. Patch by Renato Aguiar


1d26dbd4b1 Stefan Sperling

add global repository access rules to gotsysd.conf

This feature can be used by server administrators to override or augment access permissions set in gotsys.conf if needed.


c343b68113 Stefan Sperling

add a test case for deny rules in gotsys.conf

Deny rules in gotsys.conf didn't actually work until recently and were lacking test coverage.


df9fee32dd Stefan Sperling

fix looping in got-read-pack's version of repaint_parent_commits() as well

This can be observed during 'got send' or 'gotadmin pack/cleanup' in some cases. We would keep processing the same parent commits over and over.


82bf4748c2 Stefan Sperling

fix creation of gotd.conf deny rules in gotsys-write-conf

Deny rules do not contain the rw/ro authorization mode string. Do not fail if that string is missing. Corresponding tests will be added soon.


ebc8ef350d Stefan Sperling

fix infinite loop in got_pack_repaint_parent_commits()

This can be observed during 'got send' or 'gotadmin pack/cleanup' in some cases. We would keep processing the same parent commits over and over.