Commit Briefs

Stefan Sperling

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.


Stefan Sperling

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.


Stefan Sperling

add -E option to 'got checkout' allowing use of a non-empty work tree path

needed by and ok kn@




Stefan Sperling

make 'got checkout' and 'got update' work with read-only repositories

but warn users about the garbage collection problem







Tracey Emery

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

ok stsp