Commits


display affected file path in ERR_FILE_OBSTRUCTED error messages


fix endless loop introduced in 3143d852; programming is hard!


fix ignores when a path is passed to 'got status' Problem reported by semarie, who also provided initial regression test code. ok semarie


replace the update_blob_fileindex_entry() helper function This makes it easier to tell in which code paths we are expecting to handle a potential 'ie' NULL pointer and avoids a pointless search of the file index.


plug a memory leak in delete_blob()


make 'got update' skip conflicted files ok millert@


don't error out if rebase sees no merged paths; elide the commit instead


prevent 'got commit' from comitting empty sub-directories; found by tracey


remove implicit entry update from got_fileindex_entry_alloc(); just alloc


trim directories in got remove -R This is a racy solution that needs to be properly implemented in the future. ok stsp


fix histedit 'rebase commit ID mismatch' error when splitting a commit Commit IDs on histedit's temporary branch can change arbitrarily because the user may create new commits on this branch while editing past commits. So there is no point in trying to verify these IDs like we do during rebase. Add a test case which demonstrates the problem.


when "bad path" errors occur, always show the path in question


fix segfault in got backout which include deleted files


ignore EROFS during checkout for repositories on read-only filesystems


fix a bug where 'got revert -R' failed on added subtrees The command could fail with "got: no such entry found in tree". This problem is reproduced by the regression test added in this commit. This happened because file index entries were processed in the wrong order by diff_fileindex_dir(). To fix this, keep removed entries in the RB tree and skip them when the file index is written out, rather than removing entries from the RB tree immediately causing side-effects for RB_NEXT and friends.


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