Commits


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.


got: expand diffstat -d option to 'got diff' Like got log -d, add the switch to 'got diff' to display a diffstat of changes; as per stsp's suggestion, we always include diff output with the diffstat. Disabled in gotwebd (for now :) Includes tweaks from op@ ok stsp@


backout 169b163113a6db9878c9166aa05fbd30d05eb832 pushed by mistake, wasn't reviewed.


gotwebd: templateify gotweb_render_diff To avoid calling functions from got_operations.c directly from a template (which would hide the error), change got_output_repo_diff into got_open_diff_for_output that returns a file with the diff in it, to be then rendered by the template. got_gotweb_flushfile needs to be exposed then. It also bundles a smaller change: the `label' argument of got_repo_match_object_id is optional and not used, so just pass NULL there.


gotwebd: templateify gotweb_render_tree ok tracey@


gotwebd: render BLOB inline, add BLOBRAW for serving raw blobs binary blobs are automatically redirected to the BLOBRAW page (which is the old BLOB.) ok jamske


gotwebd: rework got_output_file_blob, no functional change can now use got_object_blob_is_binary to simplify the logic. ok stsp@


gotwebd: use Content-Disposition for RSS; sets the filename Since gotwebd serves the RSS from a path without a file name component, browsers just make up a random string to give the file a name which can be confusing. Furthermore, since it's served as application/rss+xml they try to render the XML (failing.) Use gotweb_render_content_type_file (which sets the Content-Disposition HTTP header) to fix both: the feed is now called <repo-name>.rss and set as attachment (thus saved and not rendered.) Change the function to take an optional filename suffix for the occasion. ok jamsek


gotwebd: add an RSS feed for the tags ok tracey@