Commits


portable: add FreeBSD support This adds the capability to compile got-portable on FreeBSD.


portable: initial Linux compilation This commit modifies the GoT main branch to be able to compile it under linux.


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


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


fix a typo that triggered "munmap: Invalid argument" in got blame on FreeBSD ok stsp


remove redundant lines of code from close_file2_and_reuse_file1()


handle binary files in blame's custom file diff atomizer


implement custom atomizer for blame to reuse data and mappings across commits


remove stdbool.h where it's not needed


fix type of filesize output parameter of got_object_blob_dump_to_file()


allow for configuring a custom file atomizer with got_diff_get_config()


new blame algorithm which compares commit N-1 to N; with help from Neels


merge new diff implementation from the git.gameoftrees.org diff.git repository This new diff implementation was started by Neels Hofmeyr during the u2k20 hackathon and now replaces diffreg.c code lifted from the OpenBSD base system. The integration of this code into Got was done by me. Got now uses the patience diff algorithm by default. The diff.git repository will remain the primary repository for the diff code, which already compiles and runs on other operating systems such as Linux. Any fixes and improvements for files inherited from the diff.git repository should be written against that repository and synced to got.git afterwards.


indentation fixes


zap trailing tabs


show paths in blame.c GOT_ERR_OBJ_TYPE error messages


add copyright year for files already touched in 2020


simplify got_commit_graph_open()


remove GOT_ERR_ITER_NEED_MORE; the commit graph now fetches internally instead


convert tree entries from SIMPLEQ to an array


add cancellation support to commit graph and 'got blame'


remove unused variable in blame_commit()


fix and simplify blame algorithm Always diff against latest version of file. This is much easier since there is no need to keep track of lines shifting around.


remove pointless offset variable in get_blamed_line()


fix blame bug where lines got annotated with wrong commit