s[h      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ unix experimental#Vincent Hanquez <vincent@snarc.org>parent accessor ~ n parent accessor ^ n and ^  unix experimental#Vincent Hanquez <vincent@snarc.org> possible commands in a delta Ea delta is a source size, a destination size and a list of delta cmd parse a delta. C format is 2 variable sizes, followed by delta cmds. for each cmd: 2 * if first byte MSB is set, we copy from source. " * otherwise, we copy from delta.  * extensions are not handled. 'read one delta from a lazy bytestring. @apply a delta on a lazy bytestring, returning a new bytestring.      unix experimental#Vincent Hanquez <vincent@snarc.org> !represent a git reference (SHA1) 9take a hexadecimal bytestring that represent a reference  and turn into a ref 5take a hexadecimal string that represent a reference  and turn into a ref /transform a ref into an hexadecimal bytestring +transform a ref into an hexadecimal string :transform a bytestring that represent a binary bytestring  and returns a ref. *turn a reference into a binary bytestring 4returns the prefix (leading byte) of this reference compare prefix returns the splitted format  prefix/suffix* for addressing the loose object database  unix experimental#Vincent Hanquez <vincent@snarc.org>(9describe a git object, that could of 6 differents types: 5 tree, blob, commit, tag and deltas (offset or ref). 2 the deltas one are only available through packs. !"#$%&4Raw objects infos have an header (type, size, ptr), A the data and a pointers chains to parents for resolved objects. '()*+,-<Delta objects points to some others objects in the database 8 either as offset in the pack or as a direct reference. ./0type of a git object. 123456an author or committer line  has the format: name  email time timezone % FIXME: should be a string, but I don't know if the data is stored % consistantly in one encoding (UTF8)  represent one entry in the tree 6 (permission,file or directory name,blob or tree ref) @ name should maybe a filepath, but not sure about the encoding. 7&location of an object in the database 89:;<=>Cparse a tree content parse a blob content parse a commit content parse a tag content DE;the enum instance is useful when marshalling to pack file. ' !"#$%&'()*+,-./0123456789:;<=>?@ABCDE'7:980654321,+-/.%$#"! &'()*;<=>?AB@CDE#%$#"! !"#$%&'()*'()*+,-/../06543211234567:9889:;<=>CDE unix experimental#Vincent Hanquez <vincent@snarc.org>  unix experimental#Vincent Hanquez <vincent@snarc.org>unix experimental#Vincent Hanquez <vincent@snarc.org>F;unmarshall an object (with header) from a lazy bytestring. GEunmarshall an object as (header, data) tuple from a lazy bytestring. MHread a specific ref from a loose object and returns an header and data. (read only the header of a loose object. >read a specific ref from a loose object and returns an object /check if a specific ref exists as loose object 6enumarate all prefixes available in the object store. ;enumerate all references available with a specific prefix. FGHIJKLMNOPQ FGOJIHKPQLMNFGMunix experimental#Vincent Hanquez <vincent@snarc.org> RSTUVWXYZ[\] RVWXTUSYZ[\] unix experimental#Vincent Hanquez <vincent@snarc.org>;seek in a handle, and reset the remaining buffer to empty. parse from a filebuffer Pget a Variable Length Field. get byte as long as MSB is set, and one byte after  unix experimental#Vincent Hanquez <vincent@snarc.org>unix experimental#Vincent Hanquez <vincent@snarc.org>^_`abcdeg6Enumerate the pack refs available in this repository.  open a pack h close a pack k*return the number of entries in this pack Mread an object at a specific position using a map function on the objectData &read an object at a specific position l1read a raw representation at a specific position Kenumerate all objects in this pack and callback to f for reach raw objects ^_`abcdefghijklmno^_`abcdefghijklmno ^_`abcd_`abcdeghklunix experimental#Vincent Hanquez <vincent@snarc.org>pqrstuvw@represent an index header with the version and the fanout table xz3enumerate every indexes file in the pack directory open an index {close an index <variant of withFile on the index file and with a FileReader <returns the number of references, referenced in this index. byte size of an index header. }Aget the number of reference in this index with a specific prefix $fold on refs with a specific prefix ~5return the reference offset in the packfile if found )get all references that start by prefix. [returns absolute offset in the index file of the sha1s, the crcs and the packfiles offset. parse index header +read index header from an index filereader )get index header from an index reference pqrstuvwxyz{|}~wxpqrstuvz{|y}~pqrstuvqrstuvwxxz{}~ unix experimental#Vincent Hanquez <vincent@snarc.org>Khierarchy tree, either a reference to a blob (file) or a tree (directory). @represent an git repo, with possibly already opened filereaders  for indexes and packs "open a new git repository context Cclose a git repository context, closing all remaining fileReaders. 4find the git repository from the current directory. )execute a function f with a git context. 7get all the references that start by a specific prefix get an object from repository get an object from repository #get an object type from repository @get an object from repository using a location to reference it. +get an object from repository using a ref. 1try to resolve a string to a specific commit ref . for example: HEAD, HEAD^, master~3, shortRef Jreturns a tree from a ref that might be either a commit, a tree or a tag. *build a hierarchy tree from a tree object Jresolve the ref (tree or blob) related to a path at a specific commit ref >basic checks to see if a specific path looks like a git repo. 4initialize a new repository at a specific location.  !"#$%&'()*+,-./01223456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiijklmnopqrstuvwxyzz{|}~                hit-0.1.0Data.Git.RevisionData.Git.Delta Data.Git.RefData.Git.ObjectData.Git.LooseData.Git.Named Data.Git.PackData.Git.IndexData.Git.RepositoryData.Git.FileWriter Data.Git.PathData.Git.FileReaderData.Git.InternalRevision RevModifier RevModAtN RevModAtDate RevModAtTypeRevModParentFirstN RevModParent revFromStringDeltaCmdDeltaSrc DeltaCopyDelta deltaParse deltaRead deltaApplyRefisHex isHexStringfromHex fromHexStringtoHex toHexString fromBinarytoBinary refPrefix cmpPrefixtoFilePathPartshashhashLBSObjectDeltaRefDeltaOfsTagCommitBlobTree ObjectInfooiHeaderoiDataoiChains ObjectData ObjectHeader ObjectPtrPtrOfsPtrRef ObjectType TypeDeltaRef TypeDeltaOffTypeTag TypeCommitTypeBlobTypeTreeObjectLocationPackedLooseNotFound objectToTypeobjectTypeMarshallobjectTypeUnmarshallobjectTypeIsDeltaobjectParseTreeobjectParseBlobobjectParseCommitobjectParseTagobjectWriteHeader objectWrite objectHashlooseUnmarshalllooseUnmarshallRaw looseReadRawlooseReadHeader looseRead looseExistslooseEnumeratePrefixeslooseEnumerateWithPrefixFilterlooseEnumerateWithPrefix looseMarshalllooseWriteBlobFromFile looseWriteheadListtagList remotesList remoteList headExistsheadRead headWrite tagExiststagReadtagWrite specialRead specialExistsPackedObjectInfopoiType poiOffsetpoiSize poiActualSizepoiExtraPackedObjectRaw packEnumeratepackOpen packClosepackReadHeaderpackReadMapAtOffsetpackReadAtOffsetpackReadRawAtOffsetpackEnumerateObjectspackedObjectToObjectpackObjectFromRawIndex indexSha1s indexCRCs indexPackoffsindexPackChecksum indexChecksum IndexHeaderindexEnumerate indexOpen indexClose withIndexindexHeaderGetNbWithPrefixindexGetReferenceLocationindexGetReferencesWithPrefixindexReadHeaderindexGetHeader indexReadHTreeHTreeEntTreeFileTreeDirGit gitRepoPathopenRepo closeRepofindRepowithRepo findReferencefindReferencesWithPrefixfindObjectRawAt findObjectRaw findObjectAt findObjectresolveRevisionresolveTreeish buildHTree resolvePathisRepoinitRepoNameTreeEntoctalskipChar$fEnumObjectType FileWriter writerHandle writerDeflate writerDigestdefaultCompression fileWriterNewwithFileWriter postDeflatefileWriterOutputfileWriterClosefileWriterGetDigest headsPathtagsPath remotesPathheadPathtagPath remotePath specialPath remoteEntPath packDirPath indexPathpackPath objectPathobjectPathOfRefobjectTemporaryPathdecimal FileReaderfbHandle fbUseInflate fbInflate fbRemainingfbPos fileReaderNewfileReaderClosewithFileReaderwithFileReaderDecompressfileReaderGetNextfileReaderGetPosfileReaderFill fileReaderGetfileReaderGetLBSfileReaderGetBSfileReaderSeekfileReaderParsefileReaderGetVLFfileReaderInflateToSizebe32 getNextObjectgetNextObjectRawindexHeaderGetSizeindexHeaderByteSizeindexHeaderFoldRef indexReaders packReaders IndexReaderreadRawFromPack readFromPackfindObjectType