Commit Briefs
portable: make UUID includes generic
Move the detection of UUID header files to be included portably. This will have no functional effect until MacOS detection is put in place.
add O_CLOEXEC (close-on-exec) to openat(2) calls
suggested by millert ok thomas_adam
add O_CLOEXEC (close-on-exec) flag to open(2) calls
suggested by millert ok thomas_adam
add "e" (close-on-exec) flag to fopen(3) calls
suggested by millert ok thomas_adam
let gotadmin find the repository automatically if invoked in a work tree
Move a small amount of code from worktree.c to a new file worktree_open.c, which contains everything required to open and close a work tree and inspect some of its basic parameters. This can be used by gotadmin. ok tracey
show commit progress output when 'got merge -c' is used
Otherwise no progress output is shown at all with this command. Commit progress output will also display any additional changes which resulted from conflict resolution. ok millert@
for portability, handle errno variations upon open(2) failure with O_NOFOLLOW
Problem pointed out by naddy for FreeBSD -portable. Discussed with millert, thomas adam, and naddy.
allow bad symlinks to survive a merge
Commands which perform merges will now install bad symlinks as symlinks in the work tree, instead of creating them as regular files. This means bad symlinks committed with 'got commit -S' (or Git) will be preserved. The decision to introduce a bad symlink is done at commit-time and merges should not forcefully reverse this decision. The cherrypick and backout commands require a manual commit step, and a merge result with bad symlinks will require use of 'got commit -S'. Additional testing by thomas adam
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