[[tags: egg]] == git [[toc:]] === Description Bindings to the [[http://libgit2.github.com|libgit2]] library. === Documentation {{git}} provides an interface for reading & manipulating git repositories. The library is split into two modules, {{git}} and {{git-lolevel}}: * {{git-lolevel}} is essentially just the libgit2 API, thinly wrapped. Most of the function signatures remain the same, with a few exceptions: ** Structures & pointers that would go on the stack are allocated automatically. ** Return values are checked where appropriate, signaling an exception of type {{git}} when negative. ** Pointer arrays are converted to rest arguments. * {{git}} is a higher-level interface around {{git-lolevel}}, providing record types for each libgit2 structure. The following documentation applies to the {{git}} module. === Usage (use git) or (use git-lolevel) It's not recommended to mix the two without prefixing one or the other's imports, as the two libraries share many identifiers. === API ==== Repository repository (repository-open [path]) => repository (repository-path repository [type]) => string (repository-ref repository ref) => object (repository-empty? repository) => boolean (repository-bare? repositoy) => boolean (pack-references repository) => void ==== OID oid (string->oid string) => oid (oid->string oid [length]) => string (oid->path oid) => string ==== Reference reference (reference repository ref) => reference (references repository) => list (reference-id reference) => oid (reference-owner reference) => repository (reference-resolve reference) => reference (reference-id-set reference oid) => void (reference-rename reference name) => void (reference-target-set reference target) => void (create-reference repository name target [symbolic?]) => reference ==== Generic (object-id object) => oid (object-sha object [length]) => string (object-type object) => symbol ==== Blob* blob* (blob* repository ref) => blob* (blob*-content blob) => blob (blob*-size blob) => int ==== Commit commit (commit repository ref) => commit (commits repository initial [hide] [sort]) => list (commit-id commit) => oid (commit-parentcount commit) => int (commit-time commit) => int (commit-time-offset commit) => int (commit-message commit) => string (commit-message-short commit) => string (commit-tree commit) => tree (commit-author commit) => signature (commit-committer commit) => signature (commit-parent commit [n]) => commit (create-commit repository tree message [parents] author [committer] [reference]) => commit ==== Tag tag (tag repository name) => tag (tags repository) => list (tag-id tag) => oid (tag-type tag) => symbol (tag-name tag) => string (tag-message tag) => string (tag-tagger tag) => signature (tag-target tag) => object (tag-delete tag) => tag (create-tag repository target name message tagger) => tag ==== Tree tree (tree repository ref) => tree (tree-id tree) => oid (tree-entrycount tree) => int (tree-ref tree key) => tree-entry (tree->list tree [repo]) => list (create-tree repository index) => tree ==== Tree Entry tree-entry (tree-entry-id tree-entry) => oid (tree-entry-name tree-entry) => string (tree-entry-attributes tree-entry) => int (tree-entry-type tree-entry) => symbol (tree-entry->object repository tree-entry) => object ==== Index index (index-open repo-or-path) => index (index-entrycount index) => int (index-entrycount-unmerged index) => int (index-read index) => void (index-write index) => void (index-clear index) => void (index-add index path [stage]) => void (index-remove index ref) => void (index-find index) => int (index-ref index key) => index-entry (index->list index [type]) => list ==== Index Entry index-entry (index-entry-id index-entry) => oid (index-entry-path index-entry) => string (index-entry-ctime index-entry) => int (index-entry-mtime index-entry) => int (index-entry-dev index-entry) => int (index-entry-ino index-entry) => int (index-entry-size index-entry) => int (index-entry-stage index-entry) => int (index-entry-uid index-entry) => int (index-entry-gid index-entry) => int (index-entry-mode index-entry) => int (index-entry-flags index-entry) => int (index-entry-extended index-entry) => int (index-entry->object repository index-entry) => object ==== ODB (odb-new) => odb (odb-open repo-or-path) => odb (odb-has-object? odb ref) => boolean (odb-read odb ref) => odb-object (odb-write odb data [type]) => oid (odb-hash odb data [type]) => oid ==== ODB Object odb-object (odb-object-id odb-object) => oid (odb-object-size odb-object) => int (odb-object-type odb-object) => symbol (odb-object-data odb-object) => blob ==== Signature signature (make-signature name email [time] [offset]) => signature (signature-name signature) => string (signature-email signature) => string (signature-time signature) => int (signature-time-offset signature) => int === Author Evan Hanson === License Copyright (c) 2011, Evan Hanson, 3-Clause BSD License