NEWS 5.38 KB
Newer Older
Erik Edrosa's avatar
Erik Edrosa committed
1 2 3 4
                             -*- org -*-
#+TITLE: Guile-Git NEWS - history of user-visible changes


5
Copyright © 2018, 2019, 2020 Erik Edrosa
Erik Edrosa's avatar
Erik Edrosa committed
6 7 8 9 10 11

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.  This file is offered as-is,
  without any warranty.

civodul's avatar
civodul committed
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
* 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


Erik Edrosa's avatar
Erik Edrosa committed
37 38 39 40 41 42 43 44 45 46 47 48
* 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
Erik Edrosa's avatar
Erik Edrosa committed
49
existing references with the same name.
Erik Edrosa's avatar
Erik Edrosa committed
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

~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

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

Erik Edrosa's avatar
Erik Edrosa committed
79 80 81 82
*** Support for Guile 3.0

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

83 84 85 86 87 88 89
*** 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.

90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
*** 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.

Erik Edrosa's avatar
Erik Edrosa committed
105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
** Changes

*** ~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

Erik Edrosa's avatar
Erik Edrosa committed
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163
* 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~.