Commits


portable: add FreeBSD support This adds the capability to compile got-portable on FreeBSD.


portable: initial Linux compilation This commit modifies the GoT main branch to be able to compile it under linux.


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


fix bug where 'got up -c commit path' deleted unrelated files from work tree Problem reported by Timo Myyrä


add fd field to got_worktree, modify got_fileindex_entry_update to use fds These changes are intended to make got more compatible with FreeBSD's Capsicum. ok stsp


use modern POSIX timestamp fields in struct stat ok stsp


fix use of uninitialized variable in got_fileindex_entry_update()


set a staged file type and handle it separately from the on-disk file type


mark functions which are not exposed to other files as static


more fixes for setting/getting file index entry filetype and permissions


remove pointless error checking in got_fileindex_entry_filetype_set()


add getter/setter for staged file index entry filetype


handle on-disk file index entry filetypes properly


give bad symlinks a dedicated file type in the file index


keep file index entry permission bits clear for symlinks


cope with directory entries returned from readdir(3) with type DT_UNKNOWN Such directory entries need special handling to make our directory traversal code work on filesystems that do not support the d_type optimization. I found this problem because references stored in the refs/ directory were not shown by 'got log' and 'tog log' when a repository is mounted over NFS. helpful feedback + ok millert@


fix ignores when a path is passed to 'got status' Problem reported by semarie, who also provided initial regression test code. ok semarie


fix symlink check in got_fileindex_entry_update()


remove file index entries from RB tree upon flush to disk Fixes a file index corruption problem with 'got rebase' found by tracey. ok tracey


remove implicit entry update from got_fileindex_entry_alloc(); just alloc


kill left-over debug code snippet from a46b9f33fb3018765180eb67cc954d863a5cd525


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.


rewind directory file pointer before re-opening the directory


plug memory leak introduced in commit 6fc93f379e4f736797334532691d298244b2b014


this lseek() call in read_dirlist() isn't needed