<commit_before>- @logs.each do |content_data|
  - file_name = content_data[:file_name]
  - commit = content_data[:commit]

  :plain
    var row = $("table.table_#{@hex_path} tr.file_#{hexdigest(file_name)}");
    row.find("td.tree_time_ago").html('#{escape_javascript time_ago_in_words(commit.committed_date)} ago');
    row.find("td.tree_commit").html('#{escape_javascript render("projects/tree/tree_commit_column", commit: commit)}');
<commit_msg>Prevent tree log crash if commit missing<commit_after>- @logs.each do |content_data|
  - file_name = content_data[:file_name]
  - commit = content_data[:commit]
  - next unless commit

  :plain
    var row = $("table.table_#{@hex_path} tr.file_#{hexdigest(file_name)}");
    row.find("td.tree_time_ago").html('#{escape_javascript time_ago_in_words(commit.committed_date)} ago');
    row.find("td.tree_commit").html('#{escape_javascript render("projects/tree/tree_commit_column", commit: commit)}');

{'fraction_non_alphanumeric': 0.16561181434599156, 'fraction_numerical': 0.0, 'mean_word_length': 6.1893939393939394, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4614005', 'n_tokens_mistral': 322, 'n_tokens_neox': 319, 'n_words': 49}