From 7847657e0820af98120031f719b8ede635ad8c07 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Wed, 25 Mar 2026 14:49:17 +0000 Subject: object: Split each object type into its own package --- object/tree/remove.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 object/tree/remove.go (limited to 'object/tree/remove.go') diff --git a/object/tree/remove.go b/object/tree/remove.go new file mode 100644 index 00000000..9eb42028 --- /dev/null +++ b/object/tree/remove.go @@ -0,0 +1,24 @@ +package tree + +import ( + "bytes" + "fmt" +) + +// RemoveEntry removes a tree entry by name. +func (tree *Tree) RemoveEntry(name []byte) error { + if len(tree.Entries) == 0 { + return fmt.Errorf("object: tree: entry %q not found", name) + } + + for i := range tree.Entries { + if bytes.Equal(tree.Entries[i].Name, name) { + copy(tree.Entries[i:], tree.Entries[i+1:]) + tree.Entries = tree.Entries[:len(tree.Entries)-1] + + return nil + } + } + + return fmt.Errorf("object: tree: entry %q not found", name) +} -- cgit v1.3.1-10-gc9f91