Commit Briefs

Mark 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@


Omar Polo

gotwebd: inline got_output_file_blob into gotweb_process_request

ok jamsek


Omar Polo

gotwebd: templateify gotweb_render_blame

ok and tweak from jamsek


Omar Polo

gotwebd: templateify gotweb_render_diff

ok tracey@; rebased after recent changes.


Mark Jamsek

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@


Omar Polo

backout 169b163113a6db9878c9166aa05fbd30d05eb832

pushed by mistake, wasn't reviewed.


Omar Polo

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.


Omar Polo

gotwebd: templateify gotweb_render_tree

ok tracey@


Omar Polo

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


Omar Polo

gotwebd: rework got_output_file_blob, no functional change

can now use got_object_blob_is_binary to simplify the logic. ok stsp@


Omar Polo

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


Omar Polo

gotwebd: add an RSS feed for the tags

ok tracey@


Omar Polo

gotwebd: drop unused path parameter from got_get_repo_{owner,age}

ok jamsek


Omar Polo

make got_commit_graph_iter_next use caller-provided storage for the id

and adjust the callers. discussed with and ok stsp@


Omar Polo

gotwebd: fix briefs navigation broken in 4a9629420

got_get_repo_commits iterates over the commits and build a queue for later display. My previous memleak fix moved the TAILQ_INSERT_TAIL *before* the logic to exit the loop and so it broke the pagination. This fixes it by delaying the insertion into the queue, but also by moving the check for the "previous" button after we've opened the commit. ok tracey


Omar Polo

gotwebd: percent-encode generated URLs

This adds a new helper function `gotweb_link' that outputs an HTML link with the parameter correctly escaped. ok stsp@



Omar Polo

gotwebd: fix usage of the commit graph iter

got_get_repo_commits mixes ids allocated on the heap and the one returned by the iter_next in the same variable, and then even attemp to free it. This is both a leak (we loose the pointer to the previously allocated id) and a possible invalid free since the object id pointer returned by the graph iterator is not to be passed to free(3). part of a bigger diff that's ok stsp@


Omar Polo

gotwebd: free obj_id and reflist in got_output_file_blame

ok stsp@


Omar Polo

gotwebd: got_output_file_blame: free lines on error path

ok stsp@


Omar Polo

gotwebd: free eline in got_gotweb_blame_cb loop

ok stsp@


Omar Polo

gotwebd: drop superfluous check

commit_id is not NULL if got_repo_match_object_id returned successfully. ok stsp@


Omar Polo

gotwebd: kill unused id_str in got_output_repo_tree

ok stsp@


Omar Polo

gotwebd: avoid extra strdups in got_output_repo_tree

ok stsp@


Omar Polo

gotwebd: avoid extra variable in got_output_repo_tree

in_repo_path was used only to build a path, it's then assigned to path (which is NULL at that point.) Just asprintf into path. ok stsp@