Tags give the ability to mark specific points in history as being important
  • v0.4.0
    7e4f9ae9 · Bump to version 0.4.0. ·
    Release v0.4.0

    You may download this release at guile-git-0.4.0.tar.gz

    Changes in 0.4.0 (since 0.3.0)

    New Functionality

    Support for HTTP and HTTPS proxies

    One can now specify the HTTP and HTTPS via the #:proxy-url parameter of make-fetch-options. Those fetch options must then be passed to fetch, or they can be added to the clone options passed to clone.

    Support for progress report

    Clones and fetches can take some time and you may want to tell users what’s going on. To help with that, make-fetch-options now takes a #:transfer-progress option; it should be either #f or a one-argument procedure that will be called with an <indexer-progress> record every time progress is made. This record contains information about the total number of objects being processed, the number of objects already retrieved, and the number of objects already indexed.

    Bug Fixes

    Fix typo that made repository-index and repository-refdb unusable

  • v0.3.0   Guile-Git 0.3.0
    Release v0.3.0

    You may download this release at guile-git-0.3.0.tar.gz

    Changes in 0.3.0 (since 0.2.0)

    New Functionality

    Add new (git tag) procedures

    Four new procedures were added to (git tag) related to creating tags in a git repository.

    tag-create and tag-create! are used to create what is known as "annotated" tags in git which contain a creation date, creator's signature, and a message. The tag-create! procedure can replace existing references with the same name.

    tag-create-lightweight and tag-create-lightweight! are used to create lightweight tags in git which just create a reference that points directly to a git object.

    Add (git signature) module

    The (git signature) module adds three new procedures related to signatures. Signatures are objects which identify a name, email, and time that are found on many git objects. You would need to create a signature if you want to use the tag-create procedure mentioned above.

    signature-default creates a signature by looking up the user.name and user.email from the repository's configuration. It also uses the current time.

    signature-new creates a signature with the passed in name, email, time and timezone offset.

    signature-now creates a signature with the passed in name and email. The time will use the current time.

    Add (git describe) module

    The (git describe) module adds several new procedures used to create human readable names for objects based on an available references.

    Support for Guile 3.0

    Upgrade the configure script to be able to find Guile 3.0.

    Add accessor and setter for the download tags of fetch-options

    The (git structs) module has added fetch-options-download-tags and set-fetch-options-download-tags! procedures for accessing and setting the download tags field of fetch-options. This field determines the tag download policy when fetching from a remote.

    Add CREDTYPE-* variables

    (git cred) module has added several new variables which are used to represent a bitmask for the supported credential types.

    Add ssh authentication support

    Add ssh auth support to clone and remote-fetch procedures with an authentication method from the new module (git auth).

    Add (git blob) module

    (git blob) module adds several procedures for accessing and interacting with blobs.


    repository-state return a symbols instead of an int

    The repository-state procedure used to return an integer to represent a state like none, merge, revert. It now returns the following symbols based on the state of the repository

    • repository-state/none
    • repository-state/merge
    • repository-state/revert
    • repository-state/revert-sequence
    • repository-state/cherrypick
    • repository-state/cherrypick-sequence
    • repository-state/bisect
    • repository-state/rebase
    • repository-state/rebase-interactive
    • repository-state/rebase-merge
    • repository-state/apply-mailbox
    • repository-state/apply-mailbox-or-rebase

    Rename ~foo-init-options~ procedures to be more idiomatic

    Several procedures named like foo-init-options were renamed to be more idiomatic like make-foo-options. The previous functions are deprecated and will be removed in a future version of Guile Git. The functions renamed are:

    • clone-init-options renamed to make-clone-options
    • fetch-init-options renamed to make-fetch-options
    • status-init-options renamed to make-status-options

    Bug Fixes

  • v0.2.0
    Release v0.2.0

    You may download the release at guile-git-0.2.0.tar.gz

    Changes in 0.2.0 (since 0.1.0)

    New Functionality

    Add (git submodule) module

    Add some initial bindings to libgit2's submodule functions. These include git_submodule_name, git_submodule_path, git_submodule_owner, git_submodule_head_id, git_submodule_lookup, git_submodule_init, git_submodule_reload, git_submodule_add_setup, git_submodule_add_finalize, git_submodule_add_to_index, git_submodule_set_branch, and git_submodule_update.

    Bug fixes

    Fix experience in REPL

    When in the (git) module, you can use ,use and ,apropos in the Guile REPL to get module and bindings in the module.

    Correctly export repository-working-directory

    (git repository) was exporting the incorrectly named repository-workdir.

  • v0.1.0
    Release v0.1.0

    This is the initial release of Guile-Git, libgit2 bindings for GNU Guile.

    The release may be downloaded below.