• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

umputun / revdiff / 32339058433
91%

Build:
DEFAULT BRANCH: master
Ran 20 Aug 2026 06:19AM UTC
Jobs 1
Files 79
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

20 Aug 2026 06:18AM UTC coverage: 90.114% (-0.001%) from 90.115%
32339058433

push

github

web-flow
feat: add --start-at-change to open files on the first changed line (#329)

* feat: add --start-at-change to open files on the first changed line

By default the diff pane opens at line 1, so on a large file the reviewer
scrolls to reach the change. Measured over this repo's last 60 commits, the
median first changed line is 72 and about 60% of file opens show no changed
line on a 40-row pane.

The flag is opt-in and default off, matching how every comparable navigation
knob ships here. It reuses the positioning the cross-file hunk jump already
performs: applyPendingHunkJump's forward branch is extracted as
positionOnFirstChange, so startup matches what next_hunk does on a fresh file
and no new positioning rules are introduced. skipInitialDividers is left
untouched because its other callers depend on its current meaning.

The new branch in handleFileLoaded sits below the annotation-jump, hunk-jump
and compact-anchor branches so an explicit target always wins, and returns
early since the trailing GotoTop would otherwise undo the scroll. Files with
no hunks fall back to the first visible line, so context-only sources are
unaffected. In collapsed mode the cursor lands on a delete-only hunk's
placeholder head rather than skipping it.

Related to #325.

* fix: document why the follow-up center is required, and pin it with a test

The godoc on positionOnFirstChange described the caller's centerViewportOnCursor
as a duplicate render, which invited deleting it. That call is load-bearing:
centerHunkInViewport sets the offset before rendering, so the offset clamps
against the previously loaded file's length, and on the no-hunk path nothing
renders at all.

TestModel_StartAtChange_RendersTheLoadedFile pins both halves. Removing the
call makes a context-only load paint a blank pane, and makes a 400-line jump
clamp to offset 0 against a one-line previous file, leaving the change far
below the fold. The existing subtests could not catch either, since they assert
onl... (continued)

13 of 14 new or added lines in 4 files covered. (92.86%)

11540 of 12806 relevant lines covered (90.11%)

3455.81 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
21.75
-0.07% app/main.go
Jobs
ID Job ID Ran Files Coverage
1 32339058433.1 20 Aug 2026 06:19AM UTC 79
90.11
GitHub Action Run
Source Files on build 32339058433
  • Tree
  • List 79
  • Changed 5
  • Source Changed 0
  • Coverage Changed 5
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • ed9816cf on github
  • Prev Build on master (#32328749387)
  • Next Build on master (#32339202529)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc