Commits


move got_patch file status checking in worktree.c check_file_status used got_worktree_status to check if the file was in an allowed state, but it's wrong since the callback is not invoked on unchanged files. While here also fix a relate bug: unlink(newpath) is in the wrong spot and ends up removing files even when it shouldn't, so move it early in the got_worktree_schedule_* error handling. Finally, update the appropriate test case. It was passing before because got_worktree_schedule_add returned GOT_ERR_FILE_STATUS, not because check_file_status failed. ok stsp@


fix 'got status' with an obstructed file given as argument; found by Omar


fix 'got diff' on files which match an ignore pattern; found by Omar Polo


improve 'got add' error message if file does not exist; reported by Timo Myyrä ok tracey


make 'got rm' report an "unexpected status" error for unversioned files ok millert@


make 'got rm' behave like rm(1) for paths found missing on disk ok millert@


remove non-reachable 'return NULL' statement from report_single_file_status()


compress delta data from delta_cache directly into pack file


wrap overlong lines


add O_CLOEXEC (close-on-exec) to openat(2) calls suggested by millert ok thomas_adam


add O_CLOEXEC (close-on-exec) flag to open(2) calls suggested by millert ok thomas_adam


add "e" (close-on-exec) flag to fopen(3) calls suggested by millert ok thomas_adam


preverse binary files during updates and merges


let gotadmin find the repository automatically if invoked in a work tree Move a small amount of code from worktree.c to a new file worktree_open.c, which contains everything required to open and close a work tree and inspect some of its basic parameters. This can be used by gotadmin. ok tracey


skip ignored directories during 'got status' disk crawl