]>
Commit | Line | Data |
---|---|---|
d30447cb CMN |
1 | v0.21 + 1 |
2 | ------ | |
3 | ||
4 | * File unlocks are atomic again via rename. Read-only files on Windows are | |
5 | made read-write if necessary. | |
130cb548 CMN |
6 | |
7 | * Share open packfiles across repositories to share descriptors and mmaps. | |
29fe897d CMN |
8 | |
9 | * Use a map for the treebuilder, making insertion O(1) | |
e1fc03c9 | 10 | |
274c3fa6 CMN |
11 | * Introduce reference transactions, which allow multiple references to |
12 | be locked at the same time and updates be queued. This also allows | |
13 | us to safely update a reflog with arbitrary contents, as we need to | |
14 | do for stash. | |
15 | ||
1b63af51 CMN |
16 | * The index' tree cache is now filled upon read-tree and write-tree |
17 | and the cache is written to disk. | |
18 | ||
e1fc03c9 | 19 | * LF -> CRLF filter refuses to handle mixed-EOL files |
d412165f ET |
20 | |
21 | * LF -> CRLF filter now runs when * text = auto (with Git for Windows 1.9.4) | |
22 | ||
c180c065 ET |
23 | * The git_transport structure definition has moved into the sys/transport.h |
24 | file. | |
25 | ||
7449c82e CMN |
26 | * The ssh transport supports asking the remote host for accepted |
27 | credential types as well as multiple challeges using a single | |
28 | connection. This requires to know which username you want to connect | |
29 | as, so this introduces the USERNAME credential type which the ssh | |
30 | transport will use to ask for the username. | |
31 | ||
3753110a CMN |
32 | * The build system now accepts an option EMBED_SSH_PATH which when set |
33 | tells it to include a copy of libssh2 at the given location. This is | |
34 | enabled for MSVC. | |
35 | ||
c180c065 ET |
36 | * The git_transport_register function no longer takes a priority and takes |
37 | a URL scheme name (eg "http") instead of a prefix like "http://" | |
38 | ||
1697cd6f PK |
39 | * The git_remote_set_transport function now sets a transport factory function, |
40 | rather than a pre-existing transport instance. | |
41 | ||
d4256ed5 CMN |
42 | * A factory function for ssh has been added which allows to change the |
43 | path of the programs to execute for receive-pack and upload-pack on | |
44 | the server, git_transport_ssh_with_paths. | |
45 | ||
46c8f7f8 CMN |
46 | * git_remote_rename() now takes the repository and the remote's |
47 | current name. Accepting a remote indicates we want to change it, | |
48 | which we only did partially. It is much clearer if we accept a name | |
49 | and no loaded objects are changed. | |
50 | ||
262eec23 CMN |
51 | * git_remote_delete() now accepts the repository and the remote's name |
52 | instead of a loaded remote. | |
53 | ||
0862f617 CMN |
54 | * git_remote_supported_url() has been removed as it has become |
55 | essentially useless with rsync-style ssh paths. | |
56 | ||
1697cd6f PK |
57 | * The git_clone_options struct no longer provides the ignore_cert_errors or |
58 | remote_name members for remote customization. | |
59 | ||
60 | Instead, the git_clone_options struct has two new members, remote_cb and | |
61 | remote_cb_payload, which allow the caller to completely override the remote | |
62 | creation process. If needed, the caller can use this callback to give their | |
63 | remote a name other than the default (origin) or disable cert checking. | |
64 | ||
65 | The remote_callbacks member has been preserved for convenience, although it | |
66 | is not used when a remote creation callback is supplied. | |
d58a64e9 CMN |
67 | |
68 | * The git_clone_options struct now provides repository_cb and | |
69 | repository_cb_payload to allow the user to create a repository with | |
70 | custom options. | |
6812afaf | 71 | |
2cd3cb8e CMN |
72 | * The option to ignore certificate errors via git_remote_cert_check() |
73 | is no longer present. Instead, git_remote_callbacks has gained a new | |
74 | entry which lets the user perform their own certificate checks. | |
75 | ||
6812afaf CMN |
76 | * git_clone_into and git_clone_local_into have been removed from the |
77 | public API in favour of git_clone callbacks | |
9fef46de CMN |
78 | |
79 | * Add support for refspecs with the asterisk in the middle of a | |
80 | pattern. | |
7db0e6ee | 81 | |
c5837cad CMN |
82 | * Fetching now performs opportunistic updates. To achieve this, we |
83 | introduce a difference between active and passive refspecs, which | |
84 | make git_remote_download and git_remote_fetch to take a list of | |
85 | resfpecs to be the active list, similarly to how git fetch accepts a | |
86 | list on the command-line. | |
87 | ||
209425ce CMN |
88 | * Rename git_remote_load() to git_remote_lookup() to bring it in line |
89 | with the rest of the lookup functions. | |
90 | ||
7db0e6ee CMN |
91 | * Introduce git_merge_bases() and the git_oidarray type to expose all |
92 | merge bases between two commits. | |
eca07bcd AS |
93 | |
94 | * Introduce git_merge_bases_many() to expose all merge bases between | |
95 | multiple commits. | |
67917281 ET |
96 | |
97 | * git_merge_head is now git_annotated_commit, to better reflect its usage | |
98 | for multiple functions (including rebase) | |
99 | ||
100 | * Introduce rebase functionality (using the merge algorithm only). | |
101 | Introduce git_rebase_init() to begin a new rebase session, | |
102 | git_rebase_open() to open an in-progress rebase session, | |
103 | git_rebase_commit() to commit the current rebase operation, | |
104 | git_rebase_next() to apply the next rebase operation, | |
105 | git_rebase_abort() to abort an in-progress rebase and git_rebase_finish() | |
106 | to complete a rebase operation. | |
107 | ||
108 | * Introduce git_note_author() and git_note_committer() to get the author | |
109 | and committer information on a git_note, respectively. | |
79b0ae4e CMN |
110 | |
111 | * The THREADSAFE option to build libgit2 with threading support has | |
112 | been flipped to be on by default. | |
d88766c4 POL |
113 | |
114 | * The context_lines and interhunk_lines fields in git_diff_options are | |
115 | now uint32_t instead of uint16_t. This allows to set them to UINT_MAX, | |
116 | in effect asking for "infinite" context e.g. to iterate over all the | |
117 | unmodified lines of a diff. | |
68182085 UM |
118 | |
119 | * git_status_file now takes an exact path. Use git_status_list_new if | |
120 | pathspec searching is needed. | |
e284c451 POL |
121 | |
122 | * The fetch behavior of remotes with autotag set to GIT_REMOTE_DOWNLOAD_TAGS_ALL | |
123 | has been changed to match git 1.9.0 and later. In this mode, libgit2 now | |
124 | fetches all tags in addition to whatever else needs to be fetched. | |
799e22ea CMN |
125 | |
126 | * git_threads_init() and git_threads_shutdown() have been renamed to | |
127 | git_libgit2_init() and git_libgit2_shutdown() to better explain what | |
128 | their purpose is, as it's grown to be more than just about threads. | |
6d91dc53 ET |
129 | |
130 | * git_libgit2_init() and git_libgit2_shutdown() now return the number of | |
131 | initializations of the library, so consumers may schedule work on the | |
132 | first initialization. |