|
14798060
|
2022-01-26T13:10:36
|
|
oid: specify a default implementation
libgit2's current default oid type is SHA1, set a public macro for that.
|
|
0db1c57c
|
2022-01-25T10:32:47
|
|
oid: add sha256 typed oids
|
|
3fbf580c
|
2022-01-23T09:47:01
|
|
oid: give oids a type
`git_oid`s now have a type, and we require the oid type when creating
the object id from creation functions.
|
|
c4360116
|
2021-12-12T09:56:28
|
|
oid: include maximum oid raw/hex sizes
|
|
74ffce20
|
2021-12-11T12:00:26
|
|
oid: introduce `git_oid_t`
We require an enumeration to help us identify the different types of
object IDs. Currently, we only support SHA1 but we will support SHA256
in the future.
|
|
0acaf3a8
|
2022-01-17T13:40:37
|
|
oid: define GIT_OID_SHA1_ZERO
Callers should not assume the layout of the oid structure; provide them
a macro that defines the null / zero sha1 object id.
|
|
dbc4ac1c
|
2022-01-22T23:10:03
|
|
oid: `GIT_OID_*SZ` is now `GIT_OID_SHA1_*SIZE`
In preparation for SHA256 support, `GIT_OID_RAWSZ` and `GIT_OID_HEXSZ`
need to indicate that they're the size of _SHA1_ OIDs.
|
|
fb68f180
|
2022-06-13T21:44:05
|
|
status: update documentation for default options
|
|
1ed1e19a
|
2022-06-13T21:23:42
|
|
config: update config entry iteration lifecycle
|
|
cc4c37ca
|
2022-06-12T10:50:43
|
|
transport: remove `git_transport_smart_proxy_options`
Snuck in during refactoring; let's get rid of it.
|
|
0a7c00be
|
2022-06-11T14:31:16
|
|
Merge remote-tracking branch 'origin/main' into main
|
|
a7541676
|
2022-06-11T14:29:15
|
|
Apply suggestions from code review
Co-authored-by: Edward Thomson <ethomson@github.com>
|
|
9af5db9a
|
2022-04-28T17:06:54
|
|
docs: fix couple of typos
|
|
a1c94e94
|
2022-04-25T09:15:59
|
|
Merge pull request #6277 from cschlack/sys_transport_missing_include
Fix missing include
|
|
1d88605c
|
2022-04-16T08:19:38
|
|
transport: introduce `git_transport_smart_remote_connect_options`
6fc6eeb66c40310086c8f059cae41de69ad4c6da removed
`git_transport_smart_proxy_option`, and there was nothing added to
replace it. That made it hard for custom transports / smart
subtransports to know what remote connect options to use (e.g. proxy
options).
This change introduces `git_transport_smart_remote_connect_options` to
replace it.
|
|
a6fb41ff
|
2022-04-16T14:56:23
|
|
Fix missing include
|
|
88f24384
|
2022-04-14T07:18:06
|
|
remote: Delete a now-inexistent API declaration
6fc6eeb66c40310086c8f059cae41de69ad4c6da replaced the remote options
with `git_remote_connect_options`. The function definitions were
removed, but one function declaration remained, causing linker errors if
one tried to use it.
This change removes the declaration of
`git_transport_smart_proxy_option` to better reflect reality.
|
|
4161ebdd
|
2022-04-11T21:31:25
|
|
repo: make ownership checks optional
Introduce the `GIT_OPT_SET_OWNER_VALIDATION` option, so that users can
disable repository ownership validation.
|
|
c0dfd1ad
|
2022-04-11T09:56:26
|
|
repo: ensure that repo dir is owned by current user
Ensure that the repository directory is owned by the current user; this
prevents us from opening configuration files that may have been created
by an attacker.
|
|
36df49c2
|
2021-12-12T14:29:11
|
|
sha: GIT_ERROR_SHA1 is deprecated in favor of GIT_ERROR_SHA
The more generic GIT_ERROR_SHA allows for SHA256 errors as well as SHA1.
|
|
49e180c8
|
2022-02-15T22:55:48
|
|
errors: expose `git_error_set`
The `git_error_set` function is useful for callers who implement
backends and advanced callbacks. Expose it.
|
|
b152b030
|
2022-02-14T10:27:48
|
|
meta: document version information for libgit2
|
|
056fe4be
|
2022-02-14T07:12:36
|
|
meta: provide an accessor for prerelease info
|
|
ae74d5ac
|
2022-02-14T07:01:43
|
|
meta: update version number to v1.5.0-alpha
Update the version number in main to v1.5.0-alpha. This helps people
understand that the main builds are not part of the v1.4.0 release
train.
We use "alpha" to indicate builds out of main (or nightlies) as semver
v2 requires the prerelease component is compared lexicographically.
Thus, our "beta" and "rc" releases should follow.
|
|
5c949d1f
|
2022-02-13T10:06:15
|
|
v1.4: update version numbers
|
|
aded938e
|
2022-02-12T21:23:01
|
|
Merge pull request #6204 from boretrk/merge_flags
merge: fix overlap between GIT_MERGE_FILE_FAVOR__CONFLICTED and GIT_MERGE_FILE_SIMPLIFY_ALNUM
|
|
0fbf62cd
|
2022-02-12T08:46:55
|
|
merge: make the internal flags public
We made the flags that enable recursive merge internal, on the
assumption that nobody would want them and they're hard to reason about.
(Giving people an option that nobody wants is just extra noise.)
However, it made it hard for _us_ to reason about. There's no good
reason to keep it private, let's just make it public and push that
cognitive load onto our poor users. But they should expect it, they're
dealing with git, after all.
|
|
359240b6
|
2022-02-11T17:56:05
|
|
diff: indicate when the file size is "valid"
When we know the file size (because we're producing it from a working
directory iterator, or an index with an up-to-date cache) then set a
flag indicating as such. This removes the ambiguity about a 0 file
size, which could indicate that a file exists and is 0 bytes, or that we
haven't read it yet.
|
|
1d811f0e
|
2022-02-11T07:14:54
|
|
Merge pull request #6203 from libgit2/ethomson/fetch_by_oid
Fetch by object id
|
|
fed3fef4
|
2022-02-07T00:45:44
|
|
merge: allocate merge flags for internal use
Allocate flags in git_merge_flag_t and git_merge_file_flag_t
for internal usage to prevent accidental double allocation.
|
|
d9863fc1
|
2022-02-06T15:27:34
|
|
Merge pull request #6192 from libgit2/ethomson/sha256_preparation
SHA256: early preparation
|
|
37d98aaf
|
2022-02-06T14:59:24
|
|
transport: transports can indicate support for fetch by oid
|
|
923c1652
|
2022-02-06T09:36:51
|
|
transport: add capabilities query function
|
|
c629d2a1
|
2022-01-29T21:02:15
|
|
merge: support zdiff3 conflict styles
|
|
70d9bfa4
|
2022-01-22T17:34:36
|
|
packbuilder: use the packfile name instead of hash
Deprecate the `git_packfile_hash` function. Callers should use the new
`git_packfile_name` function which provides a unique packfile name.
|
|
d2458af7
|
2022-01-22T14:19:13
|
|
indexer: use a byte array for checksum
The index's checksum is not an object ID, so we should not use the
`git_oid` type. Use a byte array for checksum calculation and storage.
Deprecate the `git_indexer_hash` function. Callers should use the new
`git_indexer_name` function which provides a unique packfile name.
|
|
11ef76a9
|
2022-01-22T13:31:02
|
|
index: use a byte array for checksum
The index's checksum is not an object ID, so we should not use the
`git_oid` type. Use a byte array for checksum calculation and storage.
Deprecate the `git_index_checksum` function without a replacement. This
is an abstraction that callers should not care about (and indeed do not
seem to be using).
Remove the unused `git_index__changed_relative_to` function.
|
|
258df9c1
|
2022-01-17T22:03:26
|
|
Merge pull request #6168 from punkymaniac/patch-documentation-2
Improve documentation
|
|
616628dd
|
2022-01-17T21:39:35
|
|
Merge branch 'main' into typos
|
|
d4232e7c
|
2022-01-17T21:21:54
|
|
Apply suggestions from code review
|
|
515daeaf
|
2022-01-04T06:16:30
|
|
remote: introduce `follow_redirects` connect option
Give callers the ability to select how to handle redirects - either
supporting redirects during the initial connection (so that, for
example, `git.example.com/repo` can redirect to `github.com/example/repo`)
or all/no redirects. This is for compatibility with git.
|
|
7491b3fd
|
2022-01-12T09:38:09
|
|
Set parameter name as function declaration
|
|
4e93ecfa
|
2022-01-11T15:06:00
|
|
Separate function description from short description
|
|
5c8f7a99
|
2022-01-09T10:41:24
|
|
Rephrase param description
|
|
c6ede676
|
2022-01-09T10:35:42
|
|
Fix misspelling word "ge" -> "get"
|
|
58ae4535
|
2022-01-09T10:29:00
|
|
Document return value for git_libgit2_features
|
|
68bc511a
|
2021-11-26T15:14:56
|
|
Add documentation about parameter and return value
|
|
03aed8bc
|
2021-11-26T14:57:41
|
|
Add missing parameter name
|
|
f8b26df3
|
2021-11-26T12:50:40
|
|
Add `git_apply_options_init` documentation
|
|
6fc6eeb6
|
2021-12-24T15:14:38
|
|
remote: introduce `git_remote_connect_options`
The existing mechanism for providing options to remote fetch/push calls,
and subsequently to transports, is unsatisfactory. It requires an
options structure to avoid breaking the API and callback signatures.
1. Introduce `git_remote_connect_options` to satisfy those needs.
2. Add a new remote connection API, `git_remote_connect_ext` that will
take this new options structure. Existing `git_remote_connect` calls
will proxy to that. `git_remote_fetch` and `git_remote_push` will
proxy their fetch/push options to that as well.
3. Define the interaction between `git_remote_connect` and fetch/push.
Connect _may_ be called before fetch/push, but _need not_ be. The
semantics of which options would be used for these operations was
not specified if you specify options for both connect _and_ fetch.
Now these are defined that the fetch or push options will be used
_if_ they were specified. Otherwise, the connect options will be
used if they were specified. Otherwise, the library's defaults will
be used.
4. Update the transports to understand `git_remote_connect_options`.
This is a breaking change to the systems API.
|
|
90df4302
|
2022-01-05T12:18:05
|
|
Fix typos
|
|
ef848891
|
2021-12-31T16:40:58
|
|
Add `rename_threshold` to `git_status_options`.
|
|
942cfac1
|
2021-12-23T14:21:23
|
|
worktree: checkout options suggestions from code review
|
|
ffead012
|
2021-09-09T18:02:22
|
|
Allow user checkout options on git_worktree_add
Extend the `git_worktree_add_options` to include `git_checkout_options`.
github issue #5949
|
|
4591e76a
|
2021-12-10T15:19:59
|
|
blob: identify binary content
Introduce `git_blob_data_is_binary` to examine a blob's data, instead of
the blob itself. A replacement for `git_buf_is_binary`.
|
|
9f03ebd1
|
2021-11-29T13:44:42
|
|
object: introduce a raw content validation function
Users may want to validate raw object content; provide them a function
to do so.
|
|
fc1a3f45
|
2021-11-29T13:36:36
|
|
object: return GIT_EINVALID on parse errors
Return `GIT_EINVALID` on parse errors so that direct callers of parse
functions can determine when there was a failure to parse the object.
The object parser functions will swallow this error code to prevent it
from propagating down the chain to end-users. (`git_merge` should not
return `GIT_EINVALID` when a commit it tries to look up is not valid,
this would be too vague to be useful.)
The only public function that this affects is
`git_signature_from_buffer`, which is now documented as returning
`GIT_EINVALID` when appropriate.
|
|
38c34498
|
2021-10-03T00:12:52
|
|
Make enum in includes C90 compliant by removing trailing comma.
|
|
f45ff6c9
|
2021-11-08T17:33:35
|
|
Omit trailing comma on enum
To accommodate less capable compilers.
Co-authored-by: Peter Pettersson <85582231+boretrk@users.noreply.github.com>
|
|
81662d43
|
2021-11-08T14:48:45
|
|
Support checking for object existence without refresh
Looking up a non-existent object currently always invokes
`git_odb_refresh`. If looking up a large batch of objects, many of which
may legitimately not exist, this will repeatedly refresh the ODB to no
avail.
Add a `git_odb_exists_ext` that accepts flags controlling the ODB
lookup, and add a flag to suppress the refresh. This allows the user to
control if and when they refresh (for instance, refreshing once before
starting the batch).
|
|
3993e9ae
|
2021-11-08T14:00:09
|
|
Update documentation for ODB backend refresh logic
Commit b1a6c316a6070fac4ab1ec5792979838f7145c39 moved auto-refresh into
the pack backend, and added a comment accordingly. Commit
43820f204ea32503b4083e3b6b83f30a0a0031c9 moved auto-refresh back *out*
of backends into the ODB layer, but didn't update the comment.
|
|
f0e693b1
|
2021-09-07T17:53:49
|
|
str: introduce `git_str` for internal, `git_buf` is external
libgit2 has two distinct requirements that were previously solved by
`git_buf`. We require:
1. A general purpose string class that provides a number of utility APIs
for manipulating data (eg, concatenating, truncating, etc).
2. A structure that we can use to return strings to callers that they
can take ownership of.
By using a single class (`git_buf`) for both of these purposes, we have
confused the API to the point that refactorings are difficult and
reasoning about correctness is also difficult.
Move the utility class `git_buf` to be called `git_str`: this represents
its general purpose, as an internal string buffer class. The name also
is an homage to Junio Hamano ("gitstr").
The public API remains `git_buf`, and has a much smaller footprint. It
is generally only used as an "out" param with strict requirements that
follow the documentation. (Exceptions exist for some legacy APIs to
avoid breaking callers unnecessarily.)
Utility functions exist to convert a user-specified `git_buf` to a
`git_str` so that we can call internal functions, then converting it
back again.
|
|
1738f732
|
2021-10-13T11:36:07
|
|
diff: document updated rename limit
|
|
8c29885e
|
2021-09-27T08:57:03
|
|
Merge pull request #6076 from libgit2/ethomson/oidarray_dispose
oidarray: introduce `git_oidarray_dispose`
|
|
0bd132ab
|
2021-09-26T17:58:08
|
|
oidarray: introduce `git_oidarray_dispose`
Since users are disposing the _contents_ of the oidarray, not freeing
the oidarray itself, the proper cleanup function is
`git_oidarray_dispose`. Deprecate `git_oidarray_free`.
|
|
0f4256b8
|
2021-09-24T15:23:34
|
|
repository: improve `hashfile` for absolute paths
When `git_repository_hashfile` is handed an absolute path, it determines
whether the path is within the repository's working directory or not.
This is necessary when there is no `as_path` specified.
If the path is within the working directory, then the given path should
be used for attribute lookups (it is the effective `as_path`). If it is
not within the working directory, then it is _not_ eligible.
Importantly, now we will _never_ pass an absolute path down to attribute
lookup functions.
|
|
e7437162
|
2021-09-22T08:35:02
|
|
v1.3: update version number
|
|
a5644b80
|
2021-09-22T08:48:17
|
|
Merge pull request #6068 from libgit2/ethomson/diff_enum
diff: update `GIT_DIFF_IGNORE_BLANK_LINES`
|
|
1ba7c327
|
2021-09-21T20:23:44
|
|
diff: update `GIT_DIFF_IGNORE_BLANK_LINES`
`GIT_DIFF_IGNORE_BLANK_LINES` needs to be within a (signed) int, per the
`enum` definition of ISO C.
|
|
90656858
|
2021-09-21T11:28:39
|
|
filter: use a `git_oid` in filter options, not a pointer
Using a `git_oid *` in filter options was a mistake; it is a deviation
from our typical pattern, and callers in some languages that GC may need
very special treatment in order to pass both an options structure and a
pointer outside of it.
|
|
ba01547d
|
2021-09-20T21:45:10
|
|
Merge pull request #6061 from libgit2/ethomson/email
Introduce `git_email_create`; deprecate `git_diff_format_email`
|
|
1396a9b5
|
2021-09-20T12:36:56
|
|
Merge pull request #6020 from lolgear/refactoring/stdint_ifdef_condition_has_been_reverted
Stdint header condition has been reverted.
|
|
ba3595af
|
2021-09-13T16:25:00
|
|
diff: deprecate diff_format_email
`git_diff_format_email` is deprecated in favor of `git_email_create`.
|
|
67b1d019
|
2021-09-14T09:49:31
|
|
email: include renames by default
`git format-patch` includes diffs with rename detection enabled by
default when creating emails. Match this behavior.
|
|
323f222f
|
2021-09-14T09:44:52
|
|
email: include binary diffs by default
`git format-patch` includes binary diffs by default when creating
emails. Match this behavior.
|
|
6aa34966
|
2021-09-13T08:17:21
|
|
email: introduce `git_email_create_from_diff`
Introduce a function to create an email from a diff and multiple inputs
about the source of the diff.
Creating an email from a diff requires many more inputs, and should be
discouraged in favor of building directly from a commit, and is thus in
the `sys` namespace.
|
|
75d4676a
|
2021-09-12T17:06:14
|
|
email: introduce `git_email_create_from_commit`
Create `git_email_*` which will encapsulate email creation and
application, and `git_email_create_from_commit` in particular, which
creates an email for a single commit.
|
|
4f24a932
|
2021-09-14T07:45:50
|
|
Merge pull request #6031 from libgit2/ethomson/extensions
Support custom git extensions
|
|
379c4646
|
2021-09-09T19:49:04
|
|
Fix coding style for pointer
Make some syntax change to follow coding style.
|
|
62ee779e
|
2021-09-04T18:01:10
|
|
remote: Mark `git_remote_name_is_valid` as `GIT_EXTERN`
This change makes `git_remote_name_is_valid` be part of the public
interface of the library. This is needed for other language bindings to
be able to find this symbol (like in git2go, when linking against
libgit2 dynamically).
|
|
a24e656a
|
2021-09-04T10:16:41
|
|
common: support custom repository extensions
Allow users to specify additional repository extensions that they want
to support. For example, callers can specify that they support
`preciousObjects` and then may open repositories that support
`extensions.preciousObjects`.
Similarly, callers may opt out of supporting extensions that the library
itself supports.
|
|
c811fc36
|
2021-08-31T00:13:42
|
|
v1.2: update version information
|
|
98be5a11
|
2021-08-30T17:55:47
|
|
Merge branch 'cgraph-write' into main
|
|
34fa6311
|
2021-08-30T17:55:13
|
|
commit graph: formatting fixes
|
|
2bd3c80e
|
2021-08-30T11:41:11
|
|
include: stdint header condition has been reverted.
|
|
969a056c
|
2021-08-29T22:54:01
|
|
Merge pull request #6017 from libgit2/ethomson/buf_is_readonly
buf: deprecate public git_buf writing functions
|
|
b16a36e1
|
2021-08-29T22:53:49
|
|
Merge pull request #6011 from libgit2/ethomson/filter_apply
filter: filter drivers stop taking git_buf as user input
|
|
258115db
|
2021-08-29T22:53:38
|
|
Merge pull request #6016 from libgit2/ethomson/commit_create_cb
Introduce `create_commit_cb`, deprecate `signing_cb`
|
|
16a2e667
|
2021-08-29T22:53:28
|
|
Merge pull request #6012 from libgit2/ethomson/custom_url
remote: introduce remote_ready_cb, deprecate resolve_url callback
|
|
7d9ebdc8
|
2021-08-29T18:50:49
|
|
Merge remote-tracking branch 'origin/main' into cgraph-write
|
|
2998a84a
|
2021-08-29T21:49:33
|
|
Merge pull request #5841 from J0Nes90/features/checkout-dry-run
Checkout dry-run
|
|
aebdee8e
|
2021-08-29T21:49:26
|
|
Update include/git2/checkout.h
|
|
147b659f
|
2021-08-29T21:40:26
|
|
Merge pull request #5405 from lhchavez/multi-pack-index-odb-write
midx: Introduce git_odb_write_multi_pack_index()
|
|
18293385
|
2021-08-29T21:40:16
|
|
Merge pull request #5395 from josharian/http-use-eauth
Use error code GIT_EAUTH for authentication failures
|
|
9937967e
|
2021-08-29T21:29:14
|
|
Merge branch 'main' into http-use-eauth
|
|
d2316d57
|
2021-08-29T13:10:44
|
|
buf: deprecate public git_buf writing functions
A `git_buf` is now a read-only structure as far as callers are
concerned. This is a mechanism that we can return data to callers
using memory that is owned by the library and can be cleaned up by
callers (using `git_buf_dispose`).
A `git_buf` can no longer be allocated by callers or provided to the
library.
|
|
5bcef522
|
2021-08-27T17:06:50
|
|
filter: deprecate apply function
|
|
7442c000
|
2021-08-27T11:25:51
|
|
remote: deprecate resolve_url callback
Using a callback to set a resolve_url is not particularly idiomatic.
Deprecate it in favor of the `set_instance_url` and
`set_instance_pushurl` functions which can now be called from the
`git_remote_ready_cb` callback.
|
|
72df17c6
|
2021-08-27T10:59:51
|
|
remote: introduce git_remote_ready_cb
Introduce a new callback that fires when the remote is ready to connect.
|
|
ef03e150
|
2021-08-29T10:14:01
|
|
rebase: deprecate signing_cb
The signing callback should not be used; instead, callers should provide
a commit_create_cb, perform the signing and commit creation themselves.
|