Skip to content

TreeDefinition.Remove fails to remove unwrapped trees. #1869

Closed
@tyrielv

Description

@tyrielv

You are opening a bug report against the LibGit2Sharp project: we
use GitHub Issues for tracking bug reports and feature requests. If
you have a question about an API or usage, please ask on StackOverflow:
http://stackoverflow.com/questions/tagged/libgit2sharp.

Otherwise, to report a bug, please fill out the reproduction steps
(below) and delete these introductory paragraphs. Thanks!

Reproduction steps

var dir = Path.GetTempPath() + Path.GetRandomFileName();
Repository.Init(dir);
Repository r = new Repository(dir);
Blob empty = r.ObjectDatabase.CreateBlob(new MemoryStream());
var td = new TreeDefinition();
td.Add("a/b/c", empty, Mode.NonExecutableFile);
td.Remove("a");
bool presentInTreeDefinition = td["a"] != null;
Tree t = r.ObjectDatabase.CreateTree(td);
bool presentInTree = t["a"] != null;

Expected behavior

Both presentInTreeDefinition and presentInTree should be false.

Actual behavior

presentInTreeDefinition is false, but presentInTree is true.

Version of LibGit2Sharp (release number or SHA1)

0.26.2

Operating system(s) tested; .NET runtime tested

Windows 10, .NET Core 3.1

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions