Skip to content

Use title, not full_title for commit mentionables

What does this MR do?

In !63040 (merged) we converted Commit's attr_mentionables from using safe_message to the combination of full_title + description. This led to a performance improvement in terms of generating HTML, but a performance regression when extracting cross-references from commits where the safe_message is a single long line of text, as detailed in #35269 (comment 598700344)

For those commit messages, full_title truncate the line to 1 kilobyte, and it is repeated (up to 1 megabyte) in the description, so it ends up being processed twice.

Using title instead of full_title, we only process the first 100 bytes twice. There's no danger of missing a reference because the full line (up to 1MiB, anyway) still appears in description.

We can't just scan description because, when the first line is < 100 bytes, it doesn't appear in description at all - only title.

We still want to use title + description instead of safe_message because we benefit from the cache_markdown_field HTML generation. If we use safe_message, we need to render that into HTML just for attr_mentionable, which accounts for ~1% of total cache storage all by itself.

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Related to #35269 (closed)

Merge request reports