V1F^$      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                 ! " #   Safe-Inferred &+368=HKM Safe-Inferred &+368=HKMNone &+368=HKMThere is a separate G for each possible failure when interacting with the Git repository. Repositoryy 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 haveThe commit we needInclude commit trees also?All the objects in between  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~y}|{zuxwvrstjomkpqnl`abcdefghi]_^TUVWXYZ[\OPQRSKLMNFJIHGCED=BA@?>2<;:9876543+0,11-./*)('&%$#"!  :**)('&%$#"!  +0,11-./2 <;:9876543=BA@?>CEDFJIHGKLMNOPQRSTUVWXYZ[\]_^` abcdefghijomkpqnlrstuxwvy}|{z~None &+368=HKM$\Perform a query action on a TreeBuilder using the supplied action kind and user function.xThis is a complex algorithm which has been rewritten many times, so I will try to guide you through it as best I can.%\Write out a tree to its repository. If it has already been written, nothing will happen.)&'()*+$%,-./012345&]^_`abcdefghir&r`abcdefghi]_^"&)('*+$%,-./012345None &+368=HKMNone &+368=HKMNone &+368=HKMBGiven a list of objects (commit and top-level trees) return by P, expand it to include all subtrees and blobs as well. Ordering is preserved.A commit we may already haveThe commit we needInclude commit trees also?All the objects in betweenNone &+368=HKM             None &+368=HKM        None &+368=HKMA commit we may already haveThe commit we needAll the objects in between None &+368=HKMFast-forward push a reference between repositories using a recursive copy. This can be extremely slow, but always works no matter which two backends are being used. It should be considered a matter of last resort, or for objects sets that are known to be small. None &+368=HKMNone &+368=HKM  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      None &+368=HKMCreate a new, empty tree.[Since empty trees cannot exist in Git, attempting to write out an empty tree is a no-op.66 None &+368=HKM  !"#  !"#  !"# !"#7 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[[\]^^_`abbcdefghijkjllmnopqrstuvwuxyz{||}~               ! " # $ % &'()*+,-./012345678 9:gitlib-3.1.0.2 Git.TypesGit.Tree.BuilderGit.Repository Git.Reference Git.ObjectGit.BlobGit.Tree Git.CommitGit.Commit.Push Git.WorkingGit.Tree.Builder.PureGit.Tree.Working Git.Utils Git.TutorialGit GitExceptionQuotaHardLimitExceededOidParseFailed OidCopyFailedObjectRefRequiresFullOidObjectLookupFailedReferenceLookupFailedReferenceListingFailedRefCannotCreateFromPartialOidReferenceDeleteFailedReferenceCreateFailedCommitLookupFailedCommitCreateFailedTreeEmptyCreateFailedTreeWalkFailedTreeUpdateFailedTreeEntryLookupFailedTreeCannotTraverseCommitTreeCannotTraverseBlobTreeLookupFailedTreeBuilderWriteFailedTreeBuilderRemoveFailedTreeBuilderInsertFailedTreeBuilderCreateFailedTreeCreateFailedTranslationExceptionTagLookupFailedPushNotFastForwardPathEncodingErrorIndexCreateFailedIndexAddFailedDiffTreeToIndexFailedDiffPrintToPatchFailedDiffBlobFailedBlobLookupFailedBlobEncodingUnknownBlobEmptyCreateFailedBlobCreateFailedRepositoryCannotAccessRepositoryInvalidRepositoryNotExistGitError 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 blobEntryKindTreeTrunTreeTBlobKind SymlinkBlobExecutableBlob PlainBlob BlobContentsBlobSizedStream BlobStreamBlobStringLazy BlobString ByteSourceBlobblobOid blobContentsSHAgetSHA ObjectOid TagObjOid CommitObjOid TreeObjOid BlobObjOidTagOid CommitOidTreeOidBlobOidIsOid renderOid renderObjOidRepositoryFactoryopenRepository runRepositoryRepositoryOptionsrepoPathrepoWorkingDir repoIsBarerepoAutoCreateMonadGitOidTreeOptionsfactsparseOid getRepositorycloseRepositorydeleteRepositorycreateReferencelookupReferenceupdateReferencedeleteReferencesourceReferences lookupObject existsObject sourceObjects lookupCommit lookupTree lookupBlob lookupTag readIndex writeIndexnewTreeBuildertreeOid treeEntrysourceTreeEntriesdiffContentsWithTree hashContents createBlob createCommit createTag TreeFilePath CommitMessage CommitEmail CommitAuthorRefNameRepositoryFactshasSymbolicReferences RawFilePathdefaultRepositoryOptions parseObjOidcopyOid shaToText textToShatreeEntryToOidfromBuilderModsourceCommitParentslookupCommitParentsdefaultSignature objectOid loadObjectobjectToObjOid untagObjOidcommitRefTarget mergeStatuscopyMergeResult$fExceptionGitException$fMonoidModifiedBuilder$fSemigroupModifiedBuilder$fEqBlobContents $fHashableSHA $fShowSHA $fIsOidSHAModifyTreeResultTreeEntryMutatedTreeEntryPersistentTreeEntryDeletedTreeEntryNotFoundfromModifyTreeResulttoModifyTreeResult emptyTreeIdgetEntryputEntry dropEntryputBlob'putBlobputTree putCommitwithTree withTreeOid mutateTree mutateTreeOidcurrentTreeOid currentTree withNewTree createTreewithNewRepositorywithNewRepository'withRepository'withRepositorylistReferencesresolveReferencereferenceToOid listObjectstraverseObjectstraverseObjects_expandTreeObjectslistAllObjectscreateBlobUtf8catBlob catBlobLazy catBlobUtf8blobContentsToByteStringblobToByteStringblobContentsToLazyByteStringblobToLazyByteString writeBlobtreeBlobEntriessourceTreeBlobEntriescopyBloblistTreeEntries copyTreeEntrycopyTreecommitTreeEntry copyCommitOid copyCommit listCommitstraverseCommitstraverseCommits_ pushCommitcopyRepository checkoutFiles EntryHashMapnewPureTreeBuilderFileTree FileEntry fileModTime fileBlobOid fileBlobKind fileChecksum readFileTree readFileTree' readModTimequeryTreeBuilderwriteTreeBuilder BuilderAction DropEntryPutEntryGetEntry getBuilder putBuilder doWithTree$fMonadLoggerTreeT$fMonadIOTreeT$fMonadTransTreeT$fMonadFixTreeT$fMonadPlusTreeT$fAlternativeTreeT$fApplicativeTreeT $fMonadTreeT$fFunctorTreeTmakePureBuilder