diff options
Diffstat (limited to 'object/tree/insert.go')
| -rw-r--r-- | object/tree/insert.go | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/object/tree/insert.go b/object/tree/insert.go index bca4aa49..2da86514 100644 --- a/object/tree/insert.go +++ b/object/tree/insert.go @@ -6,11 +6,15 @@ import ( ) // InsertEntry inserts a tree entry while preserving Git ordering. +// +// InsertEntry copies newEntry.Name. func (tree *Tree) InsertEntry(newEntry TreeEntry) error { if tree.entry(newEntry.Name, true) != nil || tree.entry(newEntry.Name, false) != nil { return fmt.Errorf("object: tree: entry %q already exists", newEntry.Name) } + newEntry.Name = append([]byte(nil), newEntry.Name...) + newIsTree := newEntry.Mode == FileModeDir insertAt := sort.Search(len(tree.Entries), func(i int) bool { return TreeEntryNameCompare(tree.Entries[i].Name, tree.Entries[i].Mode, newEntry.Name, newIsTree) >= 0 |
