Commit Briefs
portable: add FreeBSD support
This adds the capability to compile got-portable on FreeBSD.
fix 'got update' of an added + obstructed file
When 'got update' tried to add a new file to the work tree and this file was obstructed by, say, a directory on disk, the update failed: $ got update ? new got: new: Is a directory $ And the work tree was not updated. With this commit this situation is properly detected as an obstruction and the update succeeds: $ got update ~ new Updated to refs/heads/master: c1f85b4938dc4c668a88f13df2b98a520fc077cc File paths obstructed by a non-regular file: 1 $ Extend a corresponding test case to cover this issue. ok tracey
add a 'got merge' command for creating merge commits
Additional testing by Thomas Adam. ok tracey
portable: initial Linux compilation
This commit modifies the GoT main branch to be able to compile it under linux.
limit checks for merge conflicts to files affected by the merge
Performance problems reported by naddy
fix bogus error when 'got cherrypick' merges changes into a locally added file
reported by + ok naddy
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...
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.
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
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.
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.