| Age | Commit message (Collapse) | Author | Lines |
|
|
|
|
|
compose_snapshot_prefix dropped the leading v of a tag only when just
one of the names 1.2, v1.2 and V1.2 resolved as a tag, so that the
shorter snapshot name could always be traced back to one tag. Those
probes went through ref lookups, and on a case-insensitive filesystem a
lookup for V1.2 finds the loose file of v1.2, so every freshly made tag
counted as ambiguous and kept its v. Once git packed the refs the
lookups became exact and the same tag quietly changed its snapshot
names.
The claimants on a stripped name are now counted over the tag list
itself with exact string comparison, so the answer no longer depends on
how a ref is stored or on the filesystem underneath. Two tags that
really differ only by the letter's case still both keep it.
|
|
|
|
|
|
|
|
|
|
The old spellings are no longer read. enable-header and
enable-plain-email take the opposite value of the noheader and
noplainemail they replace.
|
|
A max-stats period enables the page again, as it did before v2.2.0, so
one key does both jobs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A submodule row linked to a path with its trailing slash stripped,
was labelled by its path rather than its entry name, shared the
name's element with its hash, claimed a size of zero and offered a
blame button that cannot work on a gitlink.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The max-stats setting now only bounds the selectable periods and no
longer doubles as the enable switch.
The tree walk runs before the history walk on purpose. Releasing commit
memory while walking history resets each commit slab index, and a commit
graph lookup afterwards would read another commit slot and walk the
wrong tree. The stats fixture writes a commit graph so the tests cover
that path. The history walk bounds the window in process rather than
passing a formatted since date to setup_revisions, and parses each
commit once.
|
|
|
|
|
|
|
|
AUTHORS now records the upstream developers as the project's history
rather than as maintainers of the fork.
|
|
The pager html-escaped its search and sort values instead of
url-encoding them, so a term with a hash or ampersand broke the link
and dropped the active filter on the next page.
|
|
fmt() aborts the request rather than truncate, so a very long path fed
into a context-sensitive tab title took down page rendering.
|
|
A plain char is undefined in the ctype functions for negative values,
which a high byte produces wherever char is signed.
|
|
The button is emitted hidden and only revealed by the script, so a
browser without JavaScript never shows a control that cannot work and
the page keeps tracking the system theme.
|
|
The old sheet had no overflow rules, so wide code, diff, blame and
stats blocks scrolled the whole page sideways on a phone. The classic
layout, badge colours and age shading are kept.
|
|
Without a viewport meta, mobile browsers assume a desktop-width page
and scale it down, which is the root cause of content overflowing on
small screens.
|