Commit Graph

2593 Commits

Author SHA1 Message Date
Edward Thomson
708d64f1e8 index: provide a index_options structure when opening
Instead of simply taking the oid type, future-proof our index opening
and creation functionality by taking an options structure.
2024-12-18 16:12:21 +00:00
Edward Thomson
f675ea3cd7 docs: remind people about git_libgit2_init
Currently `git_libgit2_init` must be called before you can work with the
library. Remind people about this as they read the documentation.
2024-12-11 10:54:21 +00:00
Edward Thomson
455ce40994 Make GIT_WIN32 an internal declaration
The `GIT_WIN32` macro should only be used internally; keep it as such.
2024-12-09 23:36:34 +00:00
Edward Thomson
4282cbd6d8 Merge remote-tracking branch 'main' into mempack_empty 2024-12-09 22:38:29 +00:00
Edward Thomson
4bb69b0827 odb_mempack: use an out param 2024-12-09 22:36:10 +00:00
Edward Thomson
88fee7af56 Documentation: update refdb_backend docs
Parameters are documented by `@param`, not `@arg`
2024-12-09 21:52:44 +00:00
Edward Thomson
338ceb93b6 Improve documentation 2024-11-26 21:44:09 +00:00
Edward Thomson
5353a2cc20 reflog: remove unused sys functions
The `git_reflog_entry__alloc` function is not actually defined, nor
used. Remove references to it in the headers. It is not clear why the
corresponding `__free` is, or should be, exported. Make it internal to
the library.
2024-11-26 21:22:10 +00:00
Caleb Owens
d2f5ce220c Update documentation of merge_base_many 2024-10-23 19:10:39 +01:00
Vladyslav Yeremeichuk
b190162f3e Add the ability to get the number of objects in mempack
Implement git_mempack_object_count, which returns the number of
objects in mempack and -1 on error.
2024-10-22 13:58:10 +03:00
Vladyslav Yeremeichuk
d1be60bbe8 Add the ability to check if a mempack is empty
Implement git_mempack_empty, which returns 1 if the mempack is empty
and 0 otherwise.
2024-10-21 22:42:56 +03:00
Edward Thomson
1692d30809 Merge pull request #6559 from libgit2/ethomson/update_tips_spec
remote: add update_refs with git_refspec
2024-10-20 00:04:52 +01:00
Edward Thomson
c1b2b25ebc remote: add update_refs callback
Add an `update_refs` callback that includes the refspec; `update_tips`
is retained for backward compatibility.
2024-10-19 23:42:26 +01:00
Edward Thomson
69555048fd clone: refactor to pass clone options around
Instead of dealing with the clone options sub-options (fetch, checkout,
etc) individually, treat them as a cohesive whole when passing them
throughout the system.

Additionally, move some functions around within the file to avoid
unnecessary decls at the top of the file.  And change a function
signature to avoid conflating truth with error.
2024-10-19 23:01:35 +01:00
Edward Thomson
933b62eedf checkout: make safe checkout the default
Make `GIT_CHECKOUT_SAFE` the default.  `NONE` is never what the user
wants _by default_; people expect checkout to, well, check things out.
Instead, it should be an opt-in "dry run" mode.

This removes some odd code in internal callers of `checkout` that takes
a `git_checkout_options` and updates the mode to `SAFE`.  This is now
unnecessary since everything has better defaults.
2024-10-19 23:01:35 +01:00
GravisZro
f1cac063ba Mandate C90 conformance
This PR ensures and enforces C90 conformance for all files C, including tests.

* Modify CMakeLists.txt to mandate C90 conformance (for better compiler compatibility)
* Update deps/ntlmclient/utf8.h to latest version
* Modify two tests and one header to use C comments instead of C++ comments
2024-10-18 22:26:57 +01:00
Edward Thomson
1ee2c33993 blame: provide line accessor
blame: introduce git_blame_line

Provide a structure that can provide the line-level information.
2024-10-18 10:02:02 +01:00
Edward Thomson
49402cc614 blame: add commit summary information 2024-10-18 10:02:02 +01:00
Edward Thomson
5378b80a9f blame: add final committer information
Our blame implementation tracks final _author_ but not final
_committer_. Make it so.
2024-10-18 10:02:02 +01:00
Edward Thomson
9cea29d154 blame: update API
Use `size_t` for sizes, standardize naming with the rest of the library.
2024-10-18 10:02:02 +01:00
John Colvin
c2d697e3ce s/size on bytes/size in bytes/ 2024-10-16 14:55:12 +01:00
Edward Thomson
751c68f1b6 Merge pull request #6877 from yerseg/ability_to_add_custom_x509_certs
ssl: ability to add raw X509 certs to the cert store
2024-10-02 13:09:31 +01:00
Edward Thomson
fa5b832544 openssl: point out the interaction between certs
The OpenSSL certificate setting functions _may_ interact; try to
document that a bit better.
2024-10-01 20:53:59 +01:00
Edward Thomson
2ba17303d0 Merge pull request #6882 from HamedMasafi/main
Add LIBGIT2_VER_CHECK Macro for Version Comparison
2024-09-30 23:26:41 +01:00
Edward Thomson
50d492063a Rename version constants to LIBGIT2_VERSION
For consistency, use LIBGIT2_VERSION_... as the constant name; deprecate
LIBGIT2_VER_... names.
2024-09-30 23:02:00 +01:00
Edward Thomson
e0b8b4b960 Add LIBGIT2_VERSION_CHECK and LIBGIT2_VERSION_NUMBER 2024-09-30 22:13:44 +01:00
Edward Thomson
54100fc081 Update include/git2/common.h 2024-09-29 22:58:39 +01:00
Edward Thomson
9ddd72f22a Merge pull request #6875 from roberth/mempack-thin-packfile 2024-09-27 17:20:00 +02:00
Robert Hensing
f9c35fb509 Add git_mempack_write_thin_pack
Unlike existing functions, this produces a _thin_ packfile by
making use of the fact that only new objects appear in the
mempack Object Database.

A thin packfile only contains certain objects, but not its whole
closure of references. This makes it suitable for efficiently
writing sets of new objects to a local repository, by avoiding
many small I/O operations.

This relies on write_pack (e.g. git_packbuilder_write_buf) to
implement the "recency order" optimization step.

Basic measurements comparing against the writing of individual
objects show a speedup during when writing large amounts of
content on machines with comparatively slow I/O operations,
and little to no change on machines with fast I/O operations.
2024-09-27 12:39:05 +02:00
Edward Thomson
9f3406163b Merge pull request #6804 from libgit2/ethomson/config_entry
config: remove `free` ptr from `git_config_entry`
2024-09-25 11:24:48 +02:00
Hamed Masafi
88bd589f7c Add VER_CHECK macro 2024-09-14 12:03:17 +03:30
Sergey Kazmin
6c9ef79aeb more verbose doc 2024-09-09 11:11:39 +03:00
Sergey Kazmin
ad04bf2566 ssl: ability to add raw X509 certs to the cert store 2024-09-06 14:59:37 +03:00
Robert Hensing
ab1b7aded5 Make packbuilder interruptible using progress callback
Specifically, forward errors from packbuilder->progress_cb

This allows the callback to gracefully terminate long-running
operations when the application is interrupted.

Interruption could be ^C in the terminal, but this could be any
other condition or event, as this is up to the callback function
to implement.
2024-09-02 17:09:13 +02:00
Anatol Pomozov
1f83c4652c Remove duplicating declaration of git_email_create_from_diff()
Exactly the same function already declared in include/git2/email.h
2024-07-10 17:16:32 -07:00
Anatol Pomozov
0c39ee1b1f Use typedef type for git_odb
This makes the function signature consistent with other cases
2024-07-10 17:14:09 -07:00
Edward Thomson
f3518eee26 Merge pull request #6706 from u-quark/signature-use-env-vars
Use environment variables when creating signatures
2024-07-10 08:31:15 +01:00
Eric Huss
ca1e3dbb06 Fix docs for git_odb_stream_read return value. 2024-06-22 12:59:37 -07:00
Edward Thomson
649ef1cca6 signature: add git_signature_default_from_env
People who are doing a commit expect a unified timestamp between
author and committer information when we're using the current timestamp.
Provide a single function that returns both author and committer
information so that they can have an identical timestamp when none is
specified in the environment.
2024-06-14 14:55:37 +02:00
Edward Thomson
e9d56b0b14 v1.8.2: update version numbers 2024-06-13 19:43:46 +02:00
Edward Thomson
49d3fadfca Revert "commit: fix const declaration"
This reverts commit cf19ddc522, which
was breaking for several projects.
2024-06-13 15:20:40 +02:00
Edward Thomson
834ec0f52f v1.8.1: update version numbers 2024-05-16 00:49:40 +01:00
Edward Thomson
2d649ccd23 remote: drop bitfields in git_remote_fetch_options
In attempting to make a clever change that added fetch options as flags,
while keeping ABI and API compatibility, we screwed up. Bitfields in
structs are implementation-specific and are not necessarily ABI
compatible across compilers.

Make `update_fetchhead` a flags value which is weirdly named, but
that's a future problem. This removes the `report_unchanged` option from
API.
2024-05-06 15:46:21 +01:00
Edward Thomson
aa093c4b07 config: remove free ptr from git_config_entry
This is a leftover leaky abstraction. If consumers aren't meant to
_call_ the `free` function then they shouldn't _see_ the free function.
Move it out into a `git_config_backend_entry` that is, well, produced by
the config backends.

This makes our code messier but is an improvement for consumers.
2024-04-29 22:58:09 +01:00
Edward Thomson
9ddf612a00 Merge pull request #6788 from libgit2/ethomson/user_agent
Allow more control over the user-agent
2024-04-18 21:02:59 +01:00
Edward Thomson
cc2a01524d docs: document git_remote_capability_t 2024-04-02 22:14:51 +01:00
Edward Thomson
6122f008c6 docs: it's _return_ not _returns_ 2024-04-02 22:14:51 +01:00
Edward Thomson
6bed71e05d docs: update includes
Update our headers so that they can include the necessary definitions.
Docs generators (in particular, `clang -Xclang -ast-dump`) were unable
to see the necessary definitions.
2024-04-02 22:14:47 +01:00
Edward Thomson
4839f4fbfc http: allow users more control over user-agent
Users can now override the "product" portion of the user-agent (via
GIT_OPT_SET_USER_AGENT_PRODUCT). This continues to default to "git/2.0",
but users may define their own string, or may opt out of sending a
user-agent entirely (by passing an empty string). Similarly, users may
now also opt-out of sending any additional "comment" information by
setting the GIT_OPT_SET_USER_AGENT value to an empty string.
2024-03-28 10:10:50 +00:00
Edward Thomson
5aa3ce7225 v1.8: update version numbers 2024-03-20 08:19:09 +00:00