| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
v0.6.0 of poxygit add support for throttling connections to test
timeouts and low-bandwidth situations.
|
|
|
|
|
|
|
|
| |
The `gitno` buffer interface is another layer on top of socket reads.
Abstract it a bit into a "static string" that has `git_str` like
semantics but without heap allocation which moves the actual reading
logic into the socket / stream code, and allows for easier future usage
of a static / stack-allocated `git_str`-like interface.
|
| |
|
|
|
|
|
|
| |
We lose some error information from the read / write callbacks to
stransport. Store our own error value in the object so that we can
ensure that we rely upon it.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
`git__timer` is now `git_time_monotonic`, and returns milliseconds
since an arbitrary epoch.
Using a floating point to store the number of seconds elapsed was
clever, as it better supports the wide range of precision from the
different monotonic clocks of different systems. But we're a version
control system, not a real-time clock.
Milliseconds is a good enough precision for our work _and_ it's the
units that system calls like `poll` take and that our users interact
with.
Make `git_time_monotonic` return the monotonically increasing number
of milliseconds "ticked" since some arbitrary epoch.
|
|
|
|
|
| |
Add support for SSPI on Windows, which offers NTLM and Negotiate
authentication.
|
|
|
|
|
|
|
|
| |
Add functions to use convert a string with length, instead of assuming
NUL termination.
In addition, move the utf8 to 16 conversion routines into the `git_utf8`
namespace instead of using namespaceless `git__` prefixed names.
|
|
|
|
|
|
|
|
|
|
| |
Name the GSSAPI and ntlmclient authentication providers as such. Today
they're named after the authentication mechanism ("Negotiate", "NTLM")
instead of their implementation.
If we have competing implementations for the same mechanism (eg, a
future Windows SSPI-based provider for Negotiate and NTLM) then this
will get confusing.
|
|
|
|
|
|
|
|
|
|
| |
Provide a stream interface for Schannel - the native crypto APIs - on
Windows. This allows Windows to use the same HTTP transport that all the
other platforms use, with its own native crypto.
Ultimately this allows us to deprecate WinHTTP and we need not add
support for our socket changes in two places (our HTTP stack and the
WinHTTP stack).
|
|\
| |
| | |
pack: use 64 bits for the number of objects
|
| |
| |
| |
| |
| |
| | |
It is a bit too hidden why we want 64 bits when we're assigning to a 32-bit
integer later on to store the number of objects, so go back to uint32_t and cast
to uint64_t during the size calculation.
|
|/
|
|
|
| |
Keeping it as a 32-bit value means the min size calculation overflows or gets
truncated which can lead to issues with large packfiles.
|
|\
| |
| | |
cmake: don't include `include/git2`
|
|/
|
|
|
| |
Including the `include/git2` build path is a seemingly unnecessary
oversight to include the generated `experimental.h` file.
|
|\ |
|
|/
|
|
|
| |
These declaration poses problems on some embedded or retro Linux systems
that deliberately disable support for wchar_t from their libc.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
When the contents of an entire new directory is ignored, and `FORCE` is
specified to `git_index_add_all`, ensure that we expand the entire file
list. By default, diff will coalesce a fully ignored folder into a
single diff entry; expand it.
|
| |
| |
| |
| |
| | |
Ensure that when all files beneath a directory are ignored that we
add the files when FORCE is specified.
|
|/
|
|
|
| |
Ensure that when all files beneath a directory are ignored that we
actually ignore the files.
|
|\
| |
| | |
odb: restore `git_odb_open`
|
| |
| |
| |
| |
| | |
`git_odb_open` was erroneously removed during a refactoring; add it
back.
|
|\ \
| | |
| | | |
fs_path: let root run the ownership tests
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The `git_fs_path_owner_is_current_user` expects the root dir on unix
(`/`) to be owned by a non-current user. This makes sense unless root
(or euid == 0) is running the tests, which often happens during distro
build / packaging scripts. Allow them to run the tests.
|
|\ \ \
| |_|/
|/| | |
Remove unused wditer variable
|
|/ /
| |
| | |
Found this randomly while debugging #6517
|
| | |
|
| | |
|
|\ \ |
|
| |/
| |
| |
| |
| | |
The library name is correctly libgit2 (not git2) or libgit2-experimental
depending on configuration.
|
|\ \ |
|
| | | |
|
| |/
| |
| |
| |
| | |
`git_odb_backend_loose` was erroneously removed during a refactoring;
add it back.
|
|\ \
| |/
|/| |
Revert #6503
|
| |
| |
| |
| | |
This reverts commit 43e84e246cc716ac51a276945b5b112b21d802d1.
|
| |
| |
| |
| | |
This reverts commit f68b40c0af9c7c5c2c8740fe4a8fbcba367e0087.
|
|\ \
| |/
|/| |
remote: always populate old id in update tips
|
|/
|
|
|
| |
In b1e83cca1bbc255627950b4e8d4fdb1174bf7a12 we erroneously stopped
setting the old ID to zero; correct that.
|
| |
|
|\
| |
| | |
v1.6
|
| | |
|
|/ |
|
|\
| |
| | |
Pass hostkey & port to host verify callback
|
| | |
|
| |
| |
| |
| | |
Co-authored-by: Stefan Karpinski <stefan@karpinski.org>
|
|/ |
|
|\
| |
| | |
Correct the definition of "empty" in the docs for `git_repository_is_empty`
|
|/
|
|
|
|
|
|
|
|
|
| |
This improves the documentation for `git_repository_is_empty`
which currently does not accurately describe libgit2's definition
of "empty".
It says that HEAD must point to the "unborn master branch", when
in fact, this is not the case if the repo's `init.defaultBranch`
configuration is set. If it is set, it will check that HEAD points
there. Only if it is not set does it fall back to `master`.
|
|\
| |
| | |
odb: don't unconditionally add oid_type to stream
|