Commits


gotwebd: avoid needless double fseek() got_gotweb_closefile() already takes care of rewinding before truncating and closing, so no need to replicate here. ok stsp@


gotwebd: lower log priority of unexpected disconnections no need to be so loud when a client disconnects earlier than expected, log it only in verbose mode. Don't log GOT_ERR_CANCELLED too since that is only used to communicate the callers that we need to stop. ok stsp@


oops, one was missing


got_operations.c: use consistently a space before labels makes diff prettier and easier to read; instead of the label we have the function name in the hunk line.


remove fsync() from got_gotweb_closefile() discussed with millert@


rename got_gotweb_flushfile -> got_gotweb_closefile suggested and ok millert@


make got_gotweb_flushfile always close the file ok millert@


rename some local fdN vars after previous change


simplify got_gotweb_openfile/flushfile Return only the FILE *, and require only that to close subsequently. Having to manage the file descriptor too makes using these functions unnecessary complex. millert@ agrees


portable: configure: split out dependencies Rather than assume all dependencies are required for all programs, split them out. This will make packaging easier, as well as splitting the code to use subprojects. Note that due to the use of config.h semantics, in most cases the got_compat.h header file is now at the top of the .c file it is included in, so that it can handle the system header inclusion properly.


portable: rework SHA detection Simply the SHA detection by not predicating on libcrypto, but instead checking individual header files.


portable: remove sha1.h; found portably Remove sha1.h as this is found portably across systems.


include sha2.h too where sha1.h is included In preparation for wide sha256 support; stsp@ agrees. Change done mechanically with find . -iname \*.[cy] -exec sam {} + X ,x/<sha1\.h>/i/\n#include <sha2.h>


gotwebd: abort tree and blob as well


gotwebd: abort blame if the client disconnect midway thru Without setting err when the callback fails we continue the blame machinery.


fix mistaken instances returning NULL instead of err While here, for consistency, check dup() return value for -1 rather than < 0. ok stsp@


gotwebd: fix briefs/tags navigation overlap Introduces a separate field for the "next" button (now called "More") and adjusted the CSS/HTML so it's used. Finally, drops the old code used to handle the pagination for the BRIEFS/COMMITS cases. Needs a small hack for the time being, setting the action to TAGS. This is due how qs->action is changed in gotweb.c while handling the request. ok jamsek


gotwebd: delete always-true check ok stsp@


gotwebd: avoid full history traversal in briefs/commits This purposefully breaks the 'previous' button in the commits and briefs page. It's hard to find the parent of a commit since they can only be iterated forward. The way the previous button was generated was to walk the history from the HEAD down to the specified commit. This is costly but more importantly leads to issue when dealing with paths that were deleted from the repository. Discussed with stsp and tracey, ok jamsek.


gotwebd: don't got_ref_list per-commit in got_get_repo_commits It's wasteful since `refs' is already populated before the loop, and released after. It also leaks the content of `refs' the first time the loop is entered. ok jamsek


gotwebd: turn gotweb_get_time_str into gotweb_render_age ok jamsek


refactor got log -d and tog diffstat to compute diff once This eliminates the previous performance cost by making 'got log -d' and tog diff view compute the diffstat while building the diff in a temp file like we do with 'got diff -d'. Also, keep the current 'got log -d' UI as per stsp's suggestion. ok stsp@


gotwebd: inline got_output_file_blob into gotweb_process_request ok jamsek


gotwebd: templateify gotweb_render_blame ok and tweak from jamsek


gotwebd: templateify gotweb_render_diff ok tracey@; rebased after recent changes.