H 9      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  Safe-InferredNoneThere is a separate  for each possible failure when ( interacting with the Git repository. ; is the central point of contact between user code and Git ? data objects. Every object must belong to some repository.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~A commit we may already have The commit we need Include commit trees also? All the objects in between   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~{~}|yzuvwxtpsrqkonmlchfdijgeYZ[\]^_`abVXWMNOPQRSTUHIJKLDEFG?CBA@<>=6;:987+543210/.-,$)%**&'(#"!  5##"!  $)%**&'(+ 543210/.-,6;:987<>=?CBA@DEFGHIJKLMNOPQRSTUVXWY Z[\]^_`abchfdijgekonmlpsrqtuvwxyz{~}|NoneGPerform a query action on a TreeBuilder using the supplied action kind  and user function. FThis is a complex algorithm which has been rewritten many times, so I 3 will try to guide you through it as best I can. EWrite out a tree to its repository. If it has already been written,  nothing will happen. ,     %VWXYZ[\]^_`ab%YZ[\]^_`abVXW#     NoneNoneNone?Given a list of objects (commit and top-level trees) return by  7, expand it to include all subtrees and blobs as well.  Ordering is preserved. A commit we may already have The commit we need Include commit trees also? All the objects in between NoneNoneNoneA commit we may already have The commit we need All the objects in between  NoneEFast-forward push a reference between repositories using a recursive K copy. This can be extremely slow, but always works no matter which two F backends are being used. It should be considered a matter of last ; resort, or for objects sets that are known to be small.  None  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ NoneCreate a new, empty tree. HSince empty trees cannot exist in Git, attempting to write out an empty  tree is a no-op.   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQQRSTTUVWXXYZ[\]^_`a`bbcdefghijklmknopqrstuvwxyz{||}~        gitlib-2.0.1.0 Git.TypesGit.Tree.BuilderGit.Repository Git.Reference Git.ObjectGit.BlobGit.Tree Git.CommitGit.Commit.PushGit.Tree.Builder.Pure Git.TutorialGit GitExceptionQuotaHardLimitExceededOidParseFailed OidCopyFailedObjectRefRequiresFullOidObjectLookupFailedReferenceLookupFailedReferenceListingFailedRefCannotCreateFromPartialOidReferenceDeleteFailedReferenceCreateFailedCommitLookupFailedCommitCreateFailedTreeEmptyCreateFailedTreeWalkFailedTreeUpdateFailedTreeEntryLookupFailedTreeCannotTraverseCommitTreeCannotTraverseBlobTreeLookupFailedTreeBuilderWriteFailedTreeBuilderRemoveFailedTreeBuilderInsertFailedTreeBuilderCreateFailedTreeCreateFailedTranslationExceptionPushNotFastForwardBlobLookupFailedBlobEncodingUnknownBlobEmptyCreateFailedBlobCreateFailedRepositoryCannotAccessRepositoryInvalidRepositoryNotExistGitError BackendError MergeResultMergeConflicted mergeHeadLeftmergeHeadRightmergeConflicts MergeSuccess mergeCommit MergeStatusBothTypeChangedLeftTypeChangedRightDeletedLeftDeletedRightTypeChangedLeftTypeChangedRightModifiedLeftModifiedRightTypeChanged BothAddedLeftDeletedRightModifiedLeftModifiedRightDeleted BothModified NoConflictModificationKind TypeChangedDeletedAddedModified Unchanged RefTarget RefSymbolicRefObjObjectTagObj CommitObjTreeObjBlobObjTagtagOid tagCommit Signature signatureNamesignatureEmail signatureWhenCommit commitOid commitParents commitTree commitAuthorcommitCommitter commitLogcommitEncodingModifiedBuilderBuilderUnchanged TreeBuildermtbBaseTreeOidmtbPendingUpdates mtbNewBuildermtbWriteContentsmtbLookupEntry mtbEntryCount mtbPutEntry mtbDropEntry TreeEntry CommitEntrycommitEntryOid treeEntryOid BlobEntry blobEntryOid blobEntryKindBlobKind UnknownBlob SymlinkBlobExecutableBlob PlainBlob BlobContentsBlobSizedStream BlobStream BlobString ByteSourceBlobblobOid blobContentsSHA ObjectOid TagObjOid CommitObjOid TreeObjOid BlobObjOidTagOid CommitOidTreeOidBlobOidIsOid renderOid renderObjOidRepositoryFactoryopenRepository runRepositorycloseRepository getRepositorydefaultOptionsstartupBackendshutdownBackendRepositoryOptionsrepoPath repoIsBarerepoAutoCreate RepositoryOidTreeOptionsfactsparseOiddeleteRepositorycreateReferencelookupReferenceupdateReferencedeleteReferencelistReferences lookupCommit lookupTree lookupBlob lookupTag lookupObject existsObject sourceObjectsnewTreeBuildertreeOid treeEntrylistTreeEntries hashContents createBlob createCommit createTagMonadGitRepositoryFactshasSymbolicReferences parseObjOidcopyOid shaToText textToShatreeEntryToOidfromBuilderModlookupCommitParents objectOid loadObjectobjectToObjOid untagObjOidcommitRefTarget mergeStatuscopyMergeResultTreeTModifyTreeResultTreeEntryMutatedTreeEntryPersistentTreeEntryDeletedTreeEntryNotFoundfromModifyTreeResulttoModifyTreeResult emptyTreeIdgetEntryputEntry dropEntryputBlob'putBlobputTree putCommitwithTree withTreeOid mutateTree mutateTreeOid currentTree withNewTree createTreewithNewRepositorywithNewRepository' withBackendDowithRepository'withRepositoryresolveReferencereferenceToOidresolveReferenceTree listObjectstraverseObjectstraverseObjects_expandTreeObjectslistAllObjectscreateBlobUtf8catBlob catBlobUtf8blobContentsToByteStringblobToByteStringtreeBlobEntriescopyBlob copyTreeEntrycopyTreecommitTreeEntry copyCommitOid copyCommit listCommitstraverseCommitstraverseCommits_ pushCommit EntryHashMapnewPureTreeBuilder$fExceptionGitException$fShowMergeResult$fDefaultSignature$fMonoidModifiedBuilder$fShowTreeEntry$fEqBlobContents $fHashableSHA $fBinarySHA $fShowSHA $fIsOidSHA$fDefaultRepositoryOptionsqueryTreeBuilderwriteTreeBuilder BuilderAction DropEntryPutEntryGetEntryrunTreeT getBuilder putBuilder doWithTreecurrentTreeOid splitPath$fMonadIOTreeT$fMonadTransTreeT$fMonadFixTreeT$fMonadPlusTreeT$fAlternativeTreeT$fApplicativeTreeT $fMonadTreeT$fFunctorTreeTmakePureBuilder