Commits


Sleep for one nanosecond after syncing the file index to disk Ensures that files modified after got exits have a different timestamp from the one which was recorded in the file index. Previously, 'got status' did not always detect such files as modified. Problem reported by Steven McDonald.


add -E option to 'got checkout' allowing use of a non-empty work tree path needed by and ok kn@


add copyright year for files already touched in 2020


prevent rebase with an out-of-date work tree


make 'got checkout' and 'got update' work with read-only repositories but warn users about the garbage collection problem


always unlink merged temporary files if an error occurs


use fchmod() instead of chmod() to tweak permissions of a merged temp file


add missing error checks to an openat() call


fix wrong function names in errno error messages


close races with concurrent filesystem modification when reading ignore files


add -k option to 'got remove' to keep files on disk ok stsp


fix leak in an error path of get_file_status()


fix fstatat() and openat() error checking in get_file_status()


avoid opening the file in get_file_status() if possible


fix wrong function name in errno error message


address some of the file descriptor vs. path races in status callbacks


open files during status crawl in a race-free way, too


prevent the status crawl from racing with paths changing in the filesystem


oops, fix previous


check for fclose() failure in get_file_status()


open the file just once in get_file_status()


add -R option to 'got remove' for recursive deletion ok stsp


there's no need to store a directory path in struct schedule_addition_args ok tracey


Introduce -I to cmd_add to disregard ignores when adding recursively. Expand add.sh tests. Update TODO.


convert tree entries from SIMPLEQ to an array