This is the classical object database representation for a Git repository, where objects are stored loose by hashing them into directories by their {@link ObjectId}, or are stored in compressed containers known as {@link PackFile}s.
Optionally an object database can reference one or more alternates; other ObjectDatabase instances that are searched in addition to the current database.
Databases are divided into two halves: a half that is considered to be fast to search (the {@code PackFile}s), and a half that is considered to be slow to search (loose objects). When alternates are present the fast half is fully searched (recursively through all alternates) before the slow half is considered.
|
|
|
|