| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We provide `BUILD_PATH` to our build script; provide it and mutate
`PATH` when running our tests as well.
We were previously using `cygpath` to try to convert a _list_ of Windows
paths into cygwin / Unix style `PATH` format. This does not work -- it
treats the path list as a single path (with semicolons -- understandably
as those are allowed characters in a Windows path).
For example, `C:\One;C:\Two;C:\Three` is converted to
`/c/one;c:/two;c:/three`.
Add a new function to convert path lists, so that paths are split by
semicolon and fed to `cygpath` independently, then re-joined with a
colon. This means that our example `C:\One;C:\Two;C:\Three` is correctly
converted to `/c/one:/c/two:/c/three`.
|
|
|
|
|
| |
We provide `BUILD_PATH` to our build script; provide it and mutate
`PATH` when running our tests as well.
|
| |
|
|
|
|
|
|
|
| |
Teach the clone tests how to clone from github.com, when given a keypair
with a passphrase and known_hosts data. This allows us to better
exercise our known_hosts checking and ensure that the lifecycle of the
certificate callback matches our expectations.
|
| |
|
| |
|
|
|
|
|
|
|
| |
libgit2 can now isolate its home directory, and our test runner (by
default) isolates the home directory. In our CI environment, we want to
set up some pieces (like ssh configuration) in a fake homedir. Continue
to do so and propagate that to clar.
|
|
|
|
|
| |
Use a dummy home directory for tests to avoid user data leaking into
test execution.
|
|
|
|
|
|
| |
Now that we've split the notion of the home directory from the global
configuration store, our tests should use the appropriate one based on
what they're doing.
|
|
|
|
|
|
|
|
|
|
| |
Some callers -- like our test suite and the test suites of our language
bindings -- want to isolate the home directory to avoid accidentally
including the executing user's actual home directory data.
Previously, we combined the notion of a home directory and global
configuration -- now that this is separated, we provide users the
ability to configure both.
|
|
|
|
|
|
|
|
| |
Users can specify a config file to be included in the home directory
using `~/filename` syntax. Instead of looking in the global
configuration location (which may be overridden), use the user's
_actual_ home directory. This allows callers to change the global
configuration location separately from the home directory.
|
|
|
|
|
|
|
|
| |
Users can specify an attribute file to be included in the home
directory using `~/filename` syntax. Instead of looking in the
global configuration location (which may be overridden), use the
user's _actual_ home directory. This allows callers to change the
global configuration location separately from the home directory.
|
|
|
|
|
| |
I spent an hour banging my head against this, when it was because the
remote didn't trust my key.
|
|
|
|
|
|
|
| |
Use `git_sysdir_find_homedir_file` to identify the path to the home
directory's `.ssh/known_hosts`; this takes Windows paths into account by
preferring `HOME`, then falling back to `HOMEPATH` and `USERPROFILE`
directories.
|
|
|
|
|
|
|
|
|
|
| |
Provide a mechanism to look up the user's home directory, using the same
mechanism that we use for locating the global configuration path (a
fancy name for saying "the home directory").
SSH known hosts lookups now use this, instead of simply looking at the
HOME environment variable, to support Windows-style home directory
lookups in `HOME`, `HOMEPATH`, or `USERPROFILE`.
|
|
|
|
|
|
| |
The windows sysdir functions are libgit2-specific and for git
compatibility only; remove them from the shared util directory and bring
them into the libgit2 source tree.
|
|\
| |
| | |
Support OpenSSL3: add OpenSSL deprection warning compatibility flag
|
|/
|
|
|
| |
Add `OPENSSL_API_COMPAT=0x10100000L` since we use the now-deprecated
low-level hash functions.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
`git_clone` checks for existence of (non-empty) directories that would clash with what is about to be cloned.
This is problematic when cloning submodules since they make sense in the context of a parent module, so they should not use the current working dir.
Since in `git_submodule_update` we clone the submodule only when it is not yet initialized we do not need to perform directory checks.
|
|\ \
| | |
| | | |
ci: always create test summaries, even on failure
|
| | | |
|
| | | |
|
|/ /
| |
| |
| |
| | |
When the dependent jobs fail -- possibly due to test failures -- we
should still produce the job summary that shows those test failures.
|
|\ \
| | |
| | | |
tests: update clar test runner
|
| | |
| | |
| | |
| | |
| | | |
Abstract time counter for tests; use gettimeofday on Unix and
GetTickCount on Windows.
|
| | | |
|
|/ /
| |
| |
| |
| | |
Update to the latest main version of clar, which includes improved xml
summary output.
|
|\ \
| | |
| | | |
src: hide unused hmac() prototype
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The builtin hash uses the code verbatim from rfc6234, including
prototypes for functions that we don't use (like hmac). Remove all
unused prototypes to avoid collisions with things that an operating
system might provide (like hmac).
|
|/ /
| |
| |
| |
| |
| | |
It conflicts with NetBSD's in its libc.
Closes #6457
|
|\ \
| | |
| | | |
push: use resolved oid as the source
|
|/ /
| |
| |
| |
| | |
211c97195e2ebcf68e27782715eb756823ad5a91 attempts to use the parsed OID
but inverted the arguments to `git_oid_cpy`.
|
|\ \
| | |
| | | |
push: revparse refspec source, so you can push things that are not refs
|
| | |
| | |
| | |
| | | |
I want to push a commit by OID to a remote branch. Currently, push parses the refspecs such that the source must be the name of a ref (it uses git_reference_name_to_id to resolve it). This commit changes it so push uses git_revparse_single to resolve the source of the refspec. This allows for OIDs or other revs (e.g. `HEAD~2`) to be pushed.
|
|\ \ \
| | | |
| | | | |
thread: avoid warnings when building without threads
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
`git__noop` takes no arguments, so a simple `#define func(a) git__noop`
will produce warnings about the unused `a`. Introduce `git__noop_args`
to swallow arguments and avoid that warning.
|
|\ \ \ \
| | | | |
| | | | | |
transport: fix capabilities calculation
|
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
This looks like a typo to me, from what i can see these lines were
added at the same time and because of how capabilities are calculated,
it's likely that this code will work in situations where these
capabilities were the last ones.
|
|\ \ \ \
| | | | |
| | | | | |
ci: update version numbers of actions
|
| | | | | |
|
|\ \ \ \ \
| |/ / / /
|/| | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The server and client negotiate a single hostkey, but the "best" cipher may not
be the one for which we have an entry in `known_hosts`. This can lead to us not
finding the key in known_hosts even though we should be connecting.
Instead here we look up the hostname with a nonsense key to perform a lookup in
the known hosts and set that. This is roughly what the OpenSSH client does as
well.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
We're currently running it as part of the online suite but that doesn't have any
setup for ssh so we won't find the GitHub keys we set up during the test.
It doesn't need the private key setup as we just want to make sure we see some
auth request from the server, but with the addition of hostkey checking we're
now seeing it fail when we skip these tests.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Currently just the one test needs it.
The ssh-rsa makes sure we're asking for the cipher we find in `known_hosts` as
that won't be the one selected by default. This will be relevant in later changes.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It turns out this has been available in libssh2 for a long time and we should
have been verifying this the whole time.
|
| |_|_|/
|/| | | |
|
|\ \ \ \
| |_|/ /
|/| | | |
Fixes #6433: git_submodule_update fails to update configured but missing submodule
|
| | | |
| | | |
| | | |
| | | |
| | | | |
If a submodule has been configured but not yet added, do not try to update it.
Issue #6433: git_submodule_update fails to update configured but missing submodule
|
|/ / /
| | |
| | |
| | |
| | | |
Verify that trying to update submodule which has been configured but not added does return an error.
Issue #6433: git_submodule_update fails to update configured but missing submodule
|