Commits


new -I option for 'got status' to show files which match an ignore pattern


fix bogus 'permission denied' error when a file at work tree root is removed ok naddy


use Patience diff for merging during cherrypick/backout/histedit/rebase This has been shown to prevent mis-merges in some cases. It's probably not a final solution. We should look at what Git's "recursive merge" is doing and implement something similar. Keep using Myers during update/unstage. The advantage of Myers is that it produces smaller conflict chunks, and there are no known cases of mis-merges which affect update/unstage.


check for close(2) error in got_repo_close() and propagate errors up ok tracey


fix unrelated changes being merged by got cherrypick/backout/rebase/histedit This was a long-standing and very annoying bug. The two xfail tests in the cherrypick test suite are passing now.


switch merge_file_cb() to using merge_file() instead of merge_blob()


decouple merge_file() parameters for 2nd derived version and merge target file


in merge_file(), remove allocation of a base_path which is unused


move merge_file()'s f_deriv parameter next to the f_orig parameter


make merge_file() accept FILEs instead of paths for orig and deriv inputs


refactor merge_file() such that it no longer requires a blob object parameter


do not update symlinks which are already up-to-date This fixes spurious 'U' notifications for symlinks during 'got update' that occurred even when the work tree was fully up-to-date. Observed on a work tree of the FreeBSD src repo and reproduced in our test suite by adding a no-op update at the end of a test which deals with updating symlinks.


add a missing STATUS_EXISTS notification in update_blob()


fix use of an uninitialized stat buffer during work tree status crawl found by naddy ok naddy jrick


ensure that old commits remain referenced after rebase and histedit Create automatic "backup" references which ensure that objects from the pre-rebase or pre-histedit state remain in the repository. A new -l option for 'got rebase' and 'got histedit' lists old commits. This makes it easier to recover from botched rebase or histedit operations. Removal of such objects currently requires got ref -d and git-gc. This will be made more convenient in the future. testing and ok jrick