fork of go-git with some jj specific features
at main 1.5 kB view raw
1package commitgraph 2 3import ( 4 "time" 5 6 "github.com/go-git/go-git/v5/plumbing" 7) 8 9// CommitData is a reduced representation of Commit as presented in the commit graph 10// file. It is merely useful as an optimization for walking the commit graphs. 11// 12// Deprecated: This package uses the wrong types for Generation and Index in CommitData. 13// Use the v2 package instead. 14type CommitData struct { 15 // TreeHash is the hash of the root tree of the commit. 16 TreeHash plumbing.Hash 17 // ParentIndexes are the indexes of the parent commits of the commit. 18 ParentIndexes []int 19 // ParentHashes are the hashes of the parent commits of the commit. 20 ParentHashes []plumbing.Hash 21 // Generation number is the pre-computed generation in the commit graph 22 // or zero if not available 23 Generation int 24 // When is the timestamp of the commit. 25 When time.Time 26} 27 28// Index represents a representation of commit graph that allows indexed 29// access to the nodes using commit object hash 30// 31// Deprecated: This package uses the wrong types for Generation and Index in CommitData. 32// Use the v2 package instead. 33type Index interface { 34 // GetIndexByHash gets the index in the commit graph from commit hash, if available 35 GetIndexByHash(h plumbing.Hash) (int, error) 36 // GetNodeByIndex gets the commit node from the commit graph using index 37 // obtained from child node, if available 38 GetCommitDataByIndex(i int) (*CommitData, error) 39 // Hashes returns all the hashes that are available in the index 40 Hashes() []plumbing.Hash 41}