8000 Test and fix for https://github.com/libgit2/libgit2sharp/issues/1869 by tyrielv · Pull Request #1870 · libgit2/libgit2sharp · GitHub
[go: up one dir, main page]

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Test and fix for #1869
  • Loading branch information
tyrielv authored and bording committed Nov 26, 2024
commit 2dd7eca45c2f95f24817ba8fc6270989df14f78e
18 changes: 18 additions & 0 deletions LibGit2Sharp.Tests/TreeDefinitionFixture.cs
Original file line number Diff line number Diff line change
Expand Up @@ -587,5 +587,23 @@ public void CanAddAnExistingBlobEntryWithAnExistingTree()
Assert.NotNull(td["1/branch_file.txt"]);
}
}

[Fact]
public void CanRemoveADirectoryWithChildren()
{
const string blobSha = "a8233120f6ad708f843d861ce2b7228ec4e3dec6";
string path = Sa AF05 ndboxBareTestRepo();
using (var repo = new Repository(path))
{
TreeDefinition td = new TreeDefinition();
var blob = repo.Lookup<Blob>(blobSha);
td.Add("folder/subfolder/file1", blob, Mode.NonExecutableFile);
td.Add("folder/file1", blob, Mode.NonExecutableFile);
td.Remove("folder");
Assert.Null(td["folder"]);
Tree t = repo.ObjectDatabase.CreateTree(td);
Assert.Null(t["folder"]);
}
}
}
}
1 change: 1 addition & 0 deletions LibGit2Sharp/TreeDefinition.cs
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ public virtual TreeDefinition Remove(string treeEntryPath)
if (segments.Item2 == null)
{
entries.Remove(segments.Item1);
unwrappedTrees.Remove(segments.Item1);
}

if (!unwrappedTrees.ContainsKey(segments.Item1))
Expand Down
0