libgit2 / libgit2/libgit2sharp

ObjectId are materialized too early in git_odb_foreach

Open
#1,676 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C#
Stars
3.5k
Forks
925
PR merge metrics
No merged PRs in 30d

Description

When enumerating objects in an ObjectDatabase, all ObjectId_s are materialized before enumeration. In a reasonable active repostory this results in a large working set and delay of processing.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read LibGit2Sharp/Core/Proxy.cs around line 1557 and ObjectDatabase.cs around line 44. Trace how ObjectId_s are currently exposed and determine how the Proxy enumeration can remain lazy; done means ObjectDatabase enumerates without materializing every ObjectId_s first.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, git
Domain
devtools, performance
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.