From e7865d3412c7f31fbdf3f4b4513238bbff6055e7 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Sun, 12 Apr 2026 13:35:48 -0700 Subject: [PATCH] add tracer.trace() calls to Repository --- git.zig | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/git.zig b/git.zig index 06635832fe1b0560cdfdc776c6d6ad85ab84b26e..401bd94456a9a7c8013581c05778acb1fa1f4363 100644 --- a/git.zig +++ b/git.zig @@ -951,6 +951,9 @@ pub const Repository = struct { } pub fn getObject(r: *Repository, arena: std.mem.Allocator, oid: Id) !?GitObject { + const t = tracer.trace(@src(), " {s}", .{oid}); + defer t.end(); + if (r.unpacked_objects.get(oid)) |obj| { return obj; } @@ -1043,6 +1046,9 @@ pub const Repository = struct { } fn getPackedObject(r: *Repository, maybe_oid: ?Id, pack_index: usize, pack_offset: usize) !GitObject { + const t = tracer.trace(@src(), " {?s} {d} {d}", .{ maybe_oid, pack_index, pack_offset }); + defer t.end(); + const pack_content = r.pack_content.values()[pack_index]; if (!std.mem.eql(u8, pack_content[0..4], "PACK")) return error.InvalidGitPack; const pack_version = std.mem.readInt(u32, pack_content[4..][0..4], .big); @@ -1180,6 +1186,9 @@ pub const Repository = struct { }; pub fn getCommit(r: *Repository, arena: std.mem.Allocator, id: CommitId) !?struct { CommitId, Commit } { + const t = tracer.trace(@src(), " {s}", .{id.id}); + defer t.end(); + if (r.commits.getPtr(id.id)) |val| { return .{ id, val.* }; } @@ -1194,6 +1203,9 @@ pub const Repository = struct { } pub fn getTree(r: *Repository, arena: std.mem.Allocator, id: TreeId) !?struct { TreeId, Tree } { + const t = tracer.trace(@src(), " {s}", .{id.id}); + defer t.end(); + if (r.trees.getPtr(id.id)) |val| { return .{ id, val.* }; } @@ -1241,6 +1253,9 @@ pub const Repository = struct { } pub fn getTag(r: *Repository, arena: std.mem.Allocator, id: TagId) !?struct { TagId, Tag } { + const t = tracer.trace(@src(), " {s}", .{id.id}); + defer t.end(); + if (r.tags.getPtr(id.id)) |val| { return .{ id, val.* }; } @@ -1255,14 +1270,23 @@ pub const Repository = struct { } pub fn getHeads(r: *Repository, arena: std.mem.Allocator) ![]Ref { + const t = tracer.trace(@src(), "", .{}); + defer t.end(); + return r.getRefs(arena, "heads"); } pub fn getTags(r: *Repository, arena: std.mem.Allocator) ![]Ref { + const t = tracer.trace(@src(), "", .{}); + defer t.end(); + return r.getRefs(arena, "tags"); } pub fn getRefs(r: *Repository, arena: std.mem.Allocator, comptime kind: [:0]const u8) ![]Ref { + const t = tracer.trace(@src(), "", .{}); + defer t.end(); + var map: std.StringArrayHashMapUnmanaged(Id) = .empty; try r.addPackedRefs(&map, arena, kind); try r.addDirRefs(&map, arena, kind); @@ -1273,6 +1297,9 @@ pub const Repository = struct { } fn addPackedRefs(r: *Repository, map: *std.StringArrayHashMapUnmanaged(Id), arena: std.mem.Allocator, comptime kind: [:0]const u8) !void { + const t = tracer.trace(@src(), "", .{}); + defer t.end(); + var file = try r.gitdir.openFile("packed-refs", .{}); defer file.close(); const content = try file.mmap(); @@ -1292,6 +1319,9 @@ pub const Repository = struct { } fn addDirRefs(r: *Repository, map: *std.StringArrayHashMapUnmanaged(Id), arena: std.mem.Allocator, comptime kind: [:0]const u8) !void { + const t = tracer.trace(@src(), "", .{}); + defer t.end(); + var dir = try r.gitdir.openDir("refs/" ++ kind, .{}); defer dir.close(); var walker = try dir.walk(arena); -- 2.54.0