diff options
| author | 2025-11-16 00:00:00 +0000 | |
|---|---|---|
| committer | 2025-11-16 00:00:00 +0000 | |
| commit | bad0f9715556a470d0de2a22c7040181e3a033ba (patch) | |
| tree | 21463072ce5bc85682a887ce0cae26d833941af3 /obj_tree.go | |
| parent | EntryRecursive should return ErrNotFound instead of nil, nil (diff) | |
| signature | ||
Use actual git for tests and enhance Head
Diffstat (limited to 'obj_tree.go')
| -rw-r--r-- | obj_tree.go | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/obj_tree.go b/obj_tree.go index 06d88692..be4accb5 100644 --- a/obj_tree.go +++ b/obj_tree.go @@ -23,9 +23,25 @@ func (sTree *StoredTree) Hash() Hash { return sTree.hash } +// FileMode represents the mode of a file in a Git tree. +type FileMode uint32 + +const ( + // FileModeDir represents a directory (tree) in a Git tree. + FileModeDir FileMode = 0o40000 + // FileModeRegular represents a regular file (blob) in a Git tree. + FileModeRegular FileMode = 0o100644 + // FileModeExecutable represents an executable file (blob) in a Git tree. + FileModeExecutable FileMode = 0o100755 + // FileModeSymlink represents a symbolic link (blob) in a Git tree. + FileModeSymlink FileMode = 0o120000 + // FileModeGitlink represents a Git link (submodule) in a Git tree. + FileModeGitlink FileMode = 0o160000 +) + // TreeEntry represents a single entry in a Git tree. type TreeEntry struct { - Mode uint32 + Mode FileMode Name []byte ID Hash } @@ -71,7 +87,7 @@ func parseTree(id Hash, body []byte, repo *Repository) (*StoredTree, error) { } entry := TreeEntry{ - Mode: uint32(mode), + Mode: FileMode(mode), Name: append([]byte(nil), nameBytes...), ID: child, } |
