Commit Graph

2528 Commits

Author SHA1 Message Date
Edward Thomson
39669956fb push: "push_options" are now "remote_push_options"
Since we use `git_push_options` as the options structure to our
`git_push` command, much like we do everywhere else, "push_options"
becomes ambiguous. "remote_options" isn't much better for us. Call them
"remote_push_options", which is still quite bad, and not particularly
insightful for end users, but at least something that we can discuss
unambiguously.
2024-02-06 20:40:26 +00:00
Edward Thomson
b4263c2303 Merge remote-tracking branch 'origin/main' into push-options 2024-02-06 20:38:55 +00:00
Edward Thomson
802f08c696 Merge pull request #6721 from vafada/ssh-timeout
set SSH timeout
2024-02-05 11:54:55 +00:00
Edward Thomson
c3dc87b0c8 docs: update documentation for timeout
The connect timeout *does* apply to SSH connections (at least libssh2),
so update the documentation appropriately.
2024-02-05 10:16:17 +00:00
Mark
7be7c0c0e0 use git_socket_stream__timeout 2024-01-26 13:37:23 -05:00
Mark
392e380463 set SSH timeout 2024-01-18 23:13:14 -05:00
Edward Thomson
55381816e8 commit: support specifying encoding for message 2024-01-15 15:53:19 +00:00
Edward Thomson
67a4d04b59 commit: introduce git_commit_create_from_stage
Provide a simple helper method that allows users to create a commit from
the current index with minimal information.
2024-01-15 15:53:19 +00:00
Edward Thomson
cf19ddc522 commit: fix const declaration
commit functions should take an array of const pointers, not a const
array.
2024-01-15 00:15:10 +00:00
DavHau
d6454dd467 docs: fix mistake in attr.h
Also fix indentation
2024-01-11 16:34:36 +07:00
Edward Thomson
98075baed2 fixup! commit: introduce git_repository_commit_parents 2023-12-23 15:30:31 +00:00
Edward Thomson
0572884693 commit: introduce git_repository_commit_parents
Emulating `git commit` is clunky - identifying your commit's parents is
part of the problem. Provide a helper to give you the parents given the
current repository state.
2023-12-23 14:11:26 +00:00
Edward Thomson
d1bdf2a8b9 Merge pull request #6678 from libgit2/ethomson/compat_fixes
Several compatibility fixes
2023-12-14 20:57:22 +00:00
Edward Thomson
b882e9e7a6 stream: use an unsigned int for a bitmask 2023-12-14 13:42:12 +00:00
Kevin Saul
731af14be3 repo: add oid type support to git_repository_new 2023-12-14 16:59:59 +13:00
Edward Thomson
95e517bee5 remote: optionally report unchanged tips 2023-10-15 14:15:20 +01:00
Edward Thomson
f78ae89bf1 errors: move systems things into the sys includes
Most callers only need to _get_ error messages. Only callers implemented
more complicated functions (like a custom ODB for example) need to set
them.

(Callback users should likely ferry their own error information in their
callback payload.)
2023-09-03 14:00:35 +01:00
Edward Thomson
3618a2aa45 errors: never return a NULL error
Callers want to be able to simply call `git_error_last()->message`,
not have to worry about whether `git_error_last()` returns NULL or not.
2023-09-03 14:00:35 +01:00
Edward Thomson
45647b721c Merge pull request #6615 from libgit2/ethomson/config_origin
config: provide an "origin" for config entries
2023-08-14 20:40:47 +01:00
David Runge
f7c746a2ef fix: Add missing include for oidarray.
Add a missing include for `git2/oidarray.h` so build doesn't fail on
using `git_oidarray` when using custom transports.

Fixes #6607
2023-07-21 16:18:39 +02:00
Edward Thomson
40ce52e51f config: provide two memory-backed config backends
Provide two memory-backed configuration backends -- one that takes a
string in config file format `[section] key=value` and one that takes a
list of strings in `section.key=value` format.
2023-07-21 11:18:44 +01:00
Edward Thomson
0e0781f6f3 config: provide origin in git_config_entry
A git_config_entry now knows the type of the origin for the entry
("file", "memory", etc) and the path details (for files, the path on
disk). This is propagated through snapshots.
2023-07-20 10:29:41 +01:00
Edward Thomson
5f7c18d733 config: drop entry payload; teach config_list about entries
The opaque `payload` on an entry is unnecessary and distracting; config
entries should follow the patterns of other objects and use space
elsewhere in the structure with a "base" config entry struct embedded.
2023-07-19 13:35:45 +01:00
Edward Thomson
62498558ff meta: update version numbers to v1.8 2023-07-17 11:07:50 +01:00
Edward Thomson
bdd031576b v1.7: update version numbers 2023-07-17 10:33:15 +01:00
Edward Thomson
58be98b71b Merge pull request #6563 from libgit2/pks/test-allocator
tests: add allocator with limited number of bytes
2023-07-15 14:00:35 +01:00
Edward Thomson
12b54ae009 worktree: document that is_prunable sets error messages
When a worktree is not prunable, an error message will be set with
information about why. Document that.
2023-05-16 12:40:16 +01:00
Edward Thomson
9dd1bfe81c alloc: simplify pluggable allocators
Remove the number of functions that custom allocator users need to
provide; nobody should need to implement `substrdup`. Keep it to the
basics that are actually _needed_ for allocation (malloc, realloc,
free) and reimplement the rest ourselves.

In addition, move the failure check and error setting _out_ of the
custom allocators and into a wrapper so that users don't need to deal
with this. This also allows us to call our allocator (without the
wrapper) early so that it does not try to set an error on failure, which
may be important for bootstrapping.
2023-05-14 14:52:15 +01:00
Edward Thomson
fad9042897 streams: sockets are non-blocking and can timeout
Make socket I/O non-blocking and add optional timeouts.

Users may now set `GIT_OPT_SET_SERVER_CONNECT_TIMEOUT` to set a shorter
connection timeout. (The connect timeout cannot be longer than the
operating system default.) Users may also now configure the socket read
and write timeouts with `GIT_OPT_SET_SERVER_TIMEOUT`.

By default, connects still timeout based on the operating system
defaults (typically 75 seconds) and socket read and writes block.

Add a test against our custom testing git server that ensures that we
can timeout reads against a slow server.
2023-05-13 16:42:04 +01:00
Edward Thomson
4f76ef568d oid: don't assume thread local state was initialized
git_oid_tostr_s could fail if thread-local state initialization fails.
In that case, it will now return `NULL`.  Callers should check for
`NULL` and propagate the failure.
2023-05-13 14:09:25 +01:00
Edward Thomson
2bbcdee6b6 Merge pull request #6557 from libgit2/ethomson/shallow
Shallow (#6396) with some fixes from review
2023-05-09 20:38:04 +01:00
Edward Thomson
437c5f5a0b fetch: remove unshallow option
The `depth` field is suitable to specify unshallowing; provide an enum
to aide in specifying the `unshallow` value.
2023-05-09 17:14:08 +01:00
Edward Thomson
0a7e32b232 oid: use an oid array instead of shallowarray
Users should provide us an array of object ids; we don't need a separate
type. And especially, we should not be mutating user-providing values.
Instead, use `git_oid *` in the shallow code.
2023-05-09 17:14:08 +01:00
Edward Thomson
3388f5ba1b shallow: don't default to -1 for depth
Depth of `0` should indicate full depth. Disallow negative values (they
may have a future meaning) and use `0` as the default.
2023-05-08 15:06:41 +01:00
Edward Thomson
161d8a12e7 sha256: wrap_odb supports SHA256 2023-05-06 14:33:49 +01:00
Edward Thomson
dd15c615bd shallow: remove feature flag
The opt mechanism isn't _really_ meant to be for feature flags, and it's
weird to feature flag shallow / unshallow at all.
2023-04-24 11:49:12 +01:00
Edward Thomson
190a4c55df Merge remote-tracking branch 'origin/main' into shallow-clone-network 2023-04-22 23:17:32 +01:00
Edward Thomson
8a62616f43 Merge pull request #6549 from libgit2/ethomson/sha256_experimental
sha256: less hardcoded SHA1 types and lengths
2023-04-22 23:09:32 +01:00
Edward Thomson
3630883094 meta: the main branch is now v1.7.0 2023-04-12 12:06:22 +01:00
Edward Thomson
b899fda3d8 commit graph: support sha256 2023-04-10 14:21:16 +01:00
Edward Thomson
be484d355b midx: support sha256 2023-04-10 14:21:16 +01:00
Edward Thomson
db2a794dda diff: parse patches with sha256 2023-04-10 14:21:16 +01:00
Edward Thomson
523f893f6f index: add sha256 support 2023-04-10 11:02:12 +01:00
Edward Thomson
2173ca8a41 v1.6.3: update version numbers 2023-03-21 10:13:23 +00:00
lmcglash
e288f874a3 Remove unnecessary include. 2023-03-13 08:46:59 +00:00
lmcglash
e3bf6db55c Merge branch 'shallow-clone-network' of https://github.com/mathworks/libgit2 into shallow-clone-network 2023-03-10 09:30:35 +00:00
Laurence McGlashan
79ed94e0f8 Apply suggestions from code review
Co-authored-by: Qix <Qix-@users.noreply.github.com>
2023-03-10 09:30:29 +00:00
lmcglash
d935773743 Remove unused git_transport_flags_t 2023-03-10 09:30:02 +00:00
lmcglash
570ef74a07 Merge commit 'd066d0d95c43e97df6624292f3f527f9372ca8fe' 2023-03-10 08:51:43 +00:00
Edward Thomson
9d1a3ef7c7 v1.6.2: update version numbers 2023-02-28 10:18:00 +00:00