Open SS1823 opened 10 months ago
Compile & run
using LibGit2Sharp; Repository.Init(args[0]); var repo = new Repository(args[0]); TreeDefinition current = new(); current.Add("sample/stays/to/a/file", repo.ObjectDatabase.CreateBlob("stays".ToStream()), Mode.NonExecutableFile); current.Add("sample/removed/to/a/file", repo.ObjectDatabase.CreateBlob("removed".ToStream()), Mode.NonExecutableFile); current.Remove("sample/removed"); var tree = repo.ObjectDatabase.CreateTree(current); var sig = new Signature("John Doe", "jd@example.com", DateTimeOffset.UtcNow); var commit = repo.ObjectDatabase.CreateCommit(sig, sig, "Test", tree, new Commit[] { }, false); var branch = repo.Branches.Add("main", commit, true); repo.Refs.UpdateTarget(repo.Refs.Head, branch.Reference); static class Ext { public static Stream ToStream(this string data) { MemoryStream stream = new(); StreamWriter writer = new(stream); writer.Write(data); writer.Flush(); stream.Position = 0; return stream; } }
sample/removed path is not in repo
sample/removed
sample/removed is there with the file
2.7.2
linux (.net7) & windows (.net7)
I noticed the code does not remove entries from unwrappedTrees dictionary, just from entries maybe that's the issue here
unwrappedTrees
entries
Duplicate of #1869
Reproduction steps
Compile & run
Expected behavior
sample/removed
path is not in repoActual behavior
sample/removed
is there with the fileVersion of LibGit2Sharp (release number or SHA1)
2.7.2
Operating system(s) tested; .NET runtime tested
linux (.net7) & windows (.net7)