| Age | Commit message (Collapse) | Author | Lines |
|
cgit's log, blame and graph pages read commits from the commit-graph
when a repository has one, and its changed path filters let a walk
limited to one file skip the commits that never touched it. git gc
writes a graph only now and then and starts those filters only when a
write asks for them, so the hook writes a split layer with them after
each push.
|
|
The hook cleared every slot on a push to any repository. cgit writes the
request a slot answers at its head, so the hook now reads it back and
drops only the pushed repository's pages and the index. It finds the
repository's url from scan-path or hooks.cgiturl, and with neither it
clears everything as before.
|
|
Each names the branch it was written for and the release current at its
last review, nginx 1.30.6 stable, Apache httpd 2.4.69 and lighttpd
1.4.85, as the projects' own sites listed them on 2026-10-29.
|
|
|
|
DocBook, pod2man and hand written pages leaked roff onto the page: font
escapes inside no fill blocks, comments, layout escapes such as \% and
\c, the colours and half line moves around DocBook's links, and the
requests and macro definitions their preambles open with. Those now
draw nothing, the common named characters and strings render, .EX and
pod2man's .Vb read as code, a .TP tag takes a line of its own and the
alternating font macros switch fonts between their arguments. Anything
rarer still falls back to its text.
|
|
A line of equals signs or dashes under a paragraph now makes a heading
of it, as on GitHub, instead of running into its text, and any other
rule ends the paragraph. Four spaces or a tab start a code block, and an
escaped pipe stays in its table cell. A link opening with two slashes
or backslashes in any mix leads to another site, so it renders as text
like the plain scheme relative one already did.
|
|
cgit takes filter output through a C string sink that stops at the
first NUL, so a readme holding one lost everything after it. Each NUL
now shows as U+FFFD, as a browser would show it.
|
|
Messages such as Path not found sat 2em further in than every other
block on the page.
|
|
The commit page draws no diff for a merge of three or more parents, so
the options above it changed nothing.
|
|
Muted, faint, the footer and the month and year ages fell short of
4.5:1 on the backgrounds they sit on, the row stripes and line number
cells among them, and links inside sentences differed from the text
around them only by colour. Each grey is now the lightest that clears
4.5:1 on its darkest background, with months stepped between weeks and
years so the age fade keeps all six steps, and links in running text
are underlined.
|
|
enable-version-info brings back the cgit and git versions that 3a00e19
took off the footer and the generator tag, for a site that wants them,
and the version 2a6726a put on the signature of patches now follows it
too. It stays off by default for the reason 3a00e19 gave.
|
|
Summary, about, log, refs, tag and stats pages shared one title, so
tabs, history and search results could not tell them apart. Titles now
read page, repository and site, with root-title as the site, and the
description stays in the meta description, where search engines read
it.
|
|
A forced colours palette, such as a Windows high contrast theme, drops
author backgrounds, and those were the only marks on the active tab and
on the lines a URL names. The user's own Highlight colour takes their
place.
|
|
Both were empty, so a screen reader moving through the table announced
those columns with no name. An aria-label names them without adding
text to the page.
|
|
A plain script in the head held up parsing until it had downloaded and
run, though cgit.js only acts once the document is ready. Deferred
scripts still run in the order given and before DOMContentLoaded, so a
site script after cgit.js can still call window.cgit.
|
|
They were the only colours written into their rules, so a theme could
not change them the way the README says it can change the rest.
|
|
Font sizes mixed percentages with ems, several paddings and margins
spelt out four values where fewer said the same, the blob and blame
tables set their position in a rule of their own, and the odd rows
repeated the base row background.
|
|
Rules now run from the tokens and the base elements through the
controls, the page frame, the listings, the readme, the blob and blame
views, the commit page, the diff, the stats and the login form, to the
media queries. Each rule moved whole, and every page renders the same
in Chromium, WebKit and Firefox.
|
|
Its caption sat above the box, each select took its own width, and the
reload button hung indented under them. The caption is now the panel's
header strip, the selects and the button share one column at the width
of the widest select, and the labels lose their colons to match the
commit details.
|
|
|
|
WCAG 1.4.11 asks for 3:1 where the border is what shows a field is
there, and the search field has no other edge. The strong grey gives
5.7:1 on the light background and 3.2:1 on the dark one. Hover moves to
the text colour so that it still shows.
|
|
The stats grid, the binary blob table and the line above a blob kept
the black of the original stylesheet as the darkest grey, and the
readme used the lightest, while the diffstat and diff options sat in
between. Rules such as the tab bar and the header line keep the light
grey.
|
|
Links fell back to each browser's own ring, which differs in shape and
colour from one engine to the next, while selects and inputs drew the
link colour ring. The repository title clips its overflow, so it gets
3px of padding, given back by a negative margin, for its ring to show
whole.
|
|
The radius tokens stay, set to zero, since the README offers metrics to
a theme, so a site can still round them. Zero rather than no radius at
all, since WebKit's own stylesheet gives a select a radius of its own.
The chevron loses its round caps and joins to match.
|
|
The stripe rules come later at the same specificity and match every
row, so the logheader background never showed.
|
|
|
|
The five rules differed only in their colours, so a change to the shape
of a label had to be made five times over.
|
|
The fold put a click between the reader and the signature, and the
browser's own disclosure marker and summary did not take the theme. The
signature prints as part of the message again, as it did up to v2.9.1.
|
|
|
|
The padding the table gained left an empty commit with a hollow frame
where the file rows would be.
|
|
The armour ran on for more lines than most tag messages, as part of the
message itself. git finds the signature for every kind it can sign
with, so PGP, SSH and X.509 all fold the same way.
|
|
On a touch screen the highlight stayed on whichever row was tapped last.
|
|
A wrong password sent the reader back to the same empty form, which
looked no different from a crash. The redirect now carries a flag the
form reads, the same for an unknown user as for a wrong password, and
the form leaves the flag out of the way back it signs.
|
|
Scintillua's css lexer tags them with names the map had no row for, so
they came out as plain text.
|
|
The fades are skipped for anyone who asks for reduced motion.
|
|
Its dark red barely stood out from the dark background.
|
|
A short file left the rule above the code, and the highlight bar under
a fragment, only as wide as its longest line.
|
|
The labels sat flush against the subject's last word, which made the
two one unbreakable run, so a narrow cell stranded a word on its own
line. A space now precedes each label and carries its gap, and a line
that breaks there drops it, so a wrapped label starts flush.
|
|
|
|
The ref rows always spanned five columns and the log three to five, so
with the default config the log and clone rows stopped 160px short of
the table's edge, and with any config the log rows did on a phone,
where they alone lost their counts. A column no cell began in also
made the summary and refs pages invalid HTML.
|
|
The modes took a third of a phone's width, so longer paths broke at a
hyphen or a slash. The tree listing already drops its mode column at
that width, and the diff itself still names a mode that changed.
|
|
The modes in the first column sat against the box's left border. A
table with collapsed borders ignores its own padding, so the box now
keeps its borders separate to take some.
|
|
The bars were cells spanning up to 1000 columns of a nested table, which
kept them free of inline styles under a strict CSP but broke the HTML
table model, 18 errors on a commit page, and left Firefox's longest bar
short of the full width. An SVG canvas sized by its attributes is just
as safe under a CSP, validates, and draws every bar exactly to scale.
|
|
On a narrow screen the download column broke a snapshot name at a
hyphen or left its signature link alone on the next line. Each file and
its signature now stay together, and a line breaks only between them.
|
|
Below 900 pixels the name, address and date of an author or committer
shared one row with the diff options beside it, so each wrapped into a
sliver and the name dropped below its label. Each value now stacks
under its label at those widths.
|
|
A window too narrow for the tabs wrapped the last of them onto a second
row, held apart from the line under the others, as an iPhone showed on
every repository page. The row now scrolls sideways instead, keeping
the active tab in view and fading the side that hides more of them, and
the tabs draw closer as the window narrows so all seven still fit at
360 pixels.
|
|
|
|
git format-patch ends each patch with the version of git that wrote it,
and the bare "cgit" that 3a00e19 left in its place said less. The
version is written as git writes its own, without the v of the tag, so
a release build signs with "cgit 2.9.0". The footer and the generator
tag still leave versions out.
|
|
Only some pre elements named --font-mono, so code in a readme took the
browser's own font, Courier in Chrome and Safari, rather than a theme's.
|
|
The bar was measured from the table's border edge, a pixel above where
its offset counts from, and covered only the digits of each number. Its
width was the part of the table in view, so scrolling a long line
sideways left the highlight behind.
|