| 232 | } |
| 233 | |
| 234 | func (h *buildTreeHelper) doBuildTree(e *index.Entry, parent, fullpath string) { |
| 235 | if _, ok := h.trees[fullpath]; ok { |
| 236 | return |
| 237 | } |
| 238 | |
| 239 | if _, ok := h.entries[fullpath]; ok { |
| 240 | return |
| 241 | } |
| 242 | |
| 243 | te := object.TreeEntry{Name: path.Base(fullpath)} |
| 244 | |
| 245 | if fullpath == e.Name { |
| 246 | te.Mode = e.Mode |
| 247 | te.Hash = e.Hash |
| 248 | } else { |
| 249 | te.Mode = filemode.Dir |
| 250 | h.trees[fullpath] = &object.Tree{} |
| 251 | } |
| 252 | |
| 253 | h.trees[parent].Entries = append(h.trees[parent].Entries, te) |
| 254 | } |
| 255 | |
| 256 | type sortableEntries []object.TreeEntry |
| 257 | |