libgit2 / libgit2/libgit2sharp

Possible In-memory repository regression?

Open
#1,479 4 comments 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

So I'm trying to get my branch updated with master https://github.com/Zoxive/libgit2sharp/tree/zoxive/refdb/ which revives the pluggable RefDb backend (#1226)

I've gotten through all the compile issues rebasing it up to the latest with dotnet core, and the codegen stuff. (Took a while to figure out that I had to change all the NativeMethod funcs to use the new custom marshaler)

Anyways all compiles and stuff now.. but testing my changes im running into an error that appears to be coming straight from libgit2.

LibGit2SharpException: path cannot exist in repository

It happens when i have an in memory repository and an OdbBackend.

Heres a sample unit test that shows the problem.
https://github.com/Zoxive/libgit2sharp/commit/7957581353134c17deaa71714ffd24a0a6130c5e

I did see that libgit2 had a regression (https://github.com/libgit2/libgit2/pull/4263) @ethomson fixed.
I'm guessing its related?

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

Start by running the sample unit test in commit 7957581353134c17deaa71714ffd24a0a6130c5e with an in-memory repository and an OdbBackend. Compare the failure with libgit2 pull request 4263 and trace where the “path cannot exist in repository” exception is surfaced. Done means the reproduction passes without regressing other repository backends.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp, git
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.