╭ changed ─╮ │src/ui.zig│ ╰──────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │1387 } │ │1388 if (std.mem.eql(u8, tab, commits_seg)) { │ │1389 params.scanPairs(&segments) catch return null; │ │1385 - if (!params.only(&.{ .start, .branch, .tag, .object })) return null; │ │1390 + if (!params.only(&.{ .start, .branch, .tag, .object, .base })) return null;│ │1391 + const base_oid = params.values.get(.base) orelse ""; │ │1392 const start = params.start() orelse return null; │ │1393 const ref = (params.ref() catch return null) orelse { │ │1394 const file = pathValue(segments.rest()) orelse return null; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1389 - return if (file.len == 0) repoCommitsRoute(pair, null, "", start, "") else null; │ │1395 + return if (file.len == 0) repoCommitsRoute(pair, null, "", start, "", base_oid) else null; │ │1396 }; │ │1391 - // the message page names its commit and nothing else │ │1397 + // the message page has no diff window or file filter │ │1398 if (std.mem.eql(u8, segments.rest(), message_seg)) │ │1393 - return if (start == 0) repoCommitMessageRoute(pair, ref.kind, ref.value) else null; │ │1399 + return if (start == 0) repoCommitMessageRoute(pair, ref.kind, ref.value, base_oid) else null;│ │1400 const file = pathValue(segments.rest()) orelse return null; │ │1395 - return repoCommitsRoute(pair, ref.kind, ref.value, start, file); │ │1401 + return repoCommitsRoute(pair, ref.kind, ref.value, start, file, base_oid); │ │1402 } │ │1403 return null; // unknown sub-path │ │1404 } │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1420 .repo_commits => |a_c| std.mem.eql(u8, a_c.name.slice(), b.repo_commits.name.slice()) and │ │1421 a_c.ref_or_oid == b.repo_commits.ref_or_oid and │ │1422 std.mem.eql(u8, a_c.value.slice(), b.repo_commits.value.slice()) and │ │1423 + std.mem.eql(u8, a_c.base_oid.slice(), b.repo_commits.base_oid.slice()) and │ │1424 switch (a_c.content) { │ │1425 .diff => |a_d| switch (b.repo_commits.content) { │ │1426 .diff => |b_d| a_d.start == b_d.start and std.mem.eql(u8, a_d.path.slice(), b_d.path.slice()),│ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯