Commit Briefs

Christian Weisgerber

indentation fixes


Stefan Sperling

limit checks for merge conflicts to files affected by the merge

Performance problems reported by naddy


Stefan Sperling

plug a memory leak in check_merge_ok()


Stefan Sperling

fix bogus error when 'got cherrypick' merges changes into a locally added file

reported by + ok naddy


Stefan Sperling

Update comment regarding the merged_paths list used by rebase and histedit

with insight I obtained while trying to make this idea work, and failing...



Stefan Sperling

disable ignore lists during status walks used by rebase and histedit

Fixes rebase of gotwebd branch which added a new directory which is also matched by .gitignore rules on the branch.





Stefan Sperling

fix a bug where files skipped by 'got update' could not be updated again

ok semarie@


Christian Weisgerber

switch from SIMPLEQ to equivalent STAILQ macros

The singly-linked tail queue macros were added to OpenBSD 6.9 and are more widely available on other systems. ok stsp




Stefan Sperling

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.


Stefan Sperling

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

ok tracey


Stefan Sperling

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.








Stefan Sperling

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.