Commits


gotd, gotadmin: install packfiles and index files as 0444 gotd used 0600 (due to mkstemps(3)), gotadmin 0644; change it to 0444 since packfiles shouldn't change once created. Mirrors what git does. ok stsp@


got: minor refactor of got_pathlist_free() API Accept flag parameter to optionally specify which pointers to free. This saves callers looping through the list to free pointers. ok + fix stsp@


introduce got_path_move_file(); based on code from lib/patch.c ok op@


got patch: allow to strip path components Move some bits from the libexec helper to the main process so we know if the patch was generated by git or not and finally document the automatic stripping of a/ and b/ prefixes added by git-diff(1). ok stsp@


remove unused function got_path_get_absolute(); realpath(3) is usually better


handle non-const dirname(3) in got_path_dirname() ok naddy


update got_path_basename() doc string ok millert


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@


add -E option to 'got checkout' allowing use of a non-empty work tree path needed by and ok kn@


cache path length in struct got_pathlist_entry


eliminate strlen() calls during fileindex rb tree searches


remove pointless output parameter from got_pathlist_append()


make 'got update' accept mulitple path arguments


add support for multiple path arguments to 'got status'


remove got_path_normalize(); pointless and unused


implement 'got init'


make 'got commit' look up EDITOR in PATH The previous code only worked if EDITOR contained an absolute path.


heed API namespace: got_dir_is_empty -> got_path_dir_is_empty


checkout: if worktree path exists and is empty, suppress mkdir failure


introduce got_path_strip_trailing_slashes()


make got path APIs available to library consumers