Commit Briefs


8bd0cdad05 Stefan Sperling

add O_CLOEXEC (close-on-exec) flag to open(2) calls

suggested by millert ok thomas_adam


ed7cc4a821 Stefan Sperling

remove outdated comment


5c02d2a555 Stefan Sperling

for portability, handle errno variations upon open(2) failure with O_NOFOLLOW

Problem pointed out by naddy for FreeBSD -portable. Discussed with millert, thomas adam, and naddy.


f259c4c182 Stefan Sperling

add a 'got merge' command for creating merge commits

Additional testing by Thomas Adam. ok tracey



dbdddfee14 Christian Weisgerber

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


91b40e30e0 Stefan Sperling

add checksum support to got_deflate_to_file()

This will eventually be used by 'gotadmin pack'. Checksum init and finalization will need to be done by the caller since many objects will be written out in compressed form while we are computing checksums across the entire pack file. ok millert, naddy


08578a35f6 Stefan Sperling

make close(2) failure checks consistent; check 'close() == -1' everywhere

ok millert, naddy


56b63ca4ab Stefan Sperling

make fclose(3) failure checks consistent; check 'fclose() == EOF' everywhere

ok millert, naddy


3818e3c42c Christian Weisgerber

convert all remaining instances of chmod(2) to fchmod(2)

ok stsp


1367695b58 Christian Weisgerber

fix potential type mismatches between format specifiers and arguments

Cast printf arguments of type time_t and off_t to long long to match the %lld format specifier on platforms where this might not be the case. In parse.y, switch the number variable to long long because all its interactions are with that type anyway. ok millert stsp


0a22ca1a5a Stefan Sperling

make 'got histedit' collapse folded add+delete operations into a no-op

If a merged commit wants to delete a locally added file, and this locally added file matches the content which was deleted in the commit being merged, we can go ahead with the deletion because there is no risk of data loss. fixes the histedit problem reported by jrick on freenode



3d9a4ec407 Stefan Sperling

add symlink support to 'got commit'


7aadece8bf Stefan Sperling

allow creation of commits which carry unmodified submodule tree entries along

approach suggested by ori@ and matches how git9 behaves ok semarie@ (who can now work with Rust-related Git repos containing submodules)



f7b97ccb29 Stefan Sperling

normalize tree entry modes to 0100644 or 0100755 when writing tree objects

semarie@ reported an error from go-git used by Cirrus CI: "57243613255d758e15b0f5ae1c960b970f0435f8: malformed mode (0100640)!" 'git fsck' has no problem with mode 0100640. But writing just the two most commonly used file modes should provide the best compatibility.


2c98ee284c Stefan Sperling

NAME_MAX does not account for a terminating NUL


56e0773df7 Stefan Sperling

convert tree entries from SIMPLEQ to an array



8e7bd50a82 Stefan Sperling

initial implementation of 'got tag' command



6af1ccbdf6 Stefan Sperling

sort tree object entries the way git likes it


3ce1b84566 Stefan Sperling

initial 'got import' implementation