const auto url =
std::format("./commit/{}.html", commit.get_id().get_hex_string(22));
const auto ptree = commit.get_parentcount() > 0
? commit.get_parent().get_tree()
: git2wrap::tree(nullptr, nullptr);
git2wrap::diff_options opts;
git_diff_init_options(&opts, GIT_DIFF_OPTIONS_VERSION);
opts.flags = GIT_DIFF_DISABLE_PATHSPEC_MATCH | GIT_DIFF_IGNORE_SUBMODULES
| GIT_DIFF_INCLUDE_TYPECHANGE;
const auto stats =
git2wrap::diff::tree_to_tree(commit.get_tree(), ptree, &opts)
.get_stats();
ost << html::tr()
.add(html::td(long_to_string(commit.get_time())))
.add(html::td().add(
html::a(commit.get_summary()).set("href", url)))
.add(html::td(commit.get_author().get_name()));
.add(html::td(commit.get_author().get_name()))
.add(html::td(std::to_string(stats.files_changed())))
.add(html::td(std::to_string(stats.insertions())))
.add(html::td(std::to_string(stats.deletions())));
}
ost << html::tbody();