| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
Only provide the empty tree internally, which matches git's behavior.
If we provide the empty blob then any users trying to write it with
libgit2 would omit it from actually landing in the odb, which appear
to git proper as a broken repository (missing that object).
|
|\
| |
| | |
SecureTransport: handle NULL trust on success
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The `SSLCopyPeerTrust` call can succeed but fail to return a trust
object if it can't load the certificate chain and thus cannot check the
validity of a certificate. This can lead to us calling `CFRelease` on a
`NULL` trust object, causing a crash.
Handle this by returning ECERTIFICATE.
|
|\ \
| |/
|/| |
clar: fix parsing of test suite prefixes
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When passing in a specific suite which should be executed by clar
via `-stest::suite`, we try to parse this string and then include
all tests contained in this suite. This also includes all tests
in sub-suites, e.g. 'test::suite::foo'.
In the case where multiple suites start with the same _string_,
for example 'test::foo' and 'test::foobar', we fail to
distinguish this correctly. When passing in `-stest::foobar`,
we wrongly determine that 'test::foo' is a prefix and try to
execute all of its matching functions. But as no function
will now match 'test::foobar', we simply execute nothing.
To fix this, we instead have to check if the prefix is an actual
suite prefix as opposed to a simple string prefix. We do so by by
inspecting if the first two characters trailing the prefix are
our suite delimiters '::', and only consider the filter as
matching in this case.
|
|\ \
| | |
| | | |
Patch image initialization
|
| | | |
|
|/ / |
|
|\ \
| | |
| | | |
odb: freshen existing objects when writing
|
| | |
| | |
| | |
| | |
| | |
| | | |
Since writing multiple objects may all already exist in a single
packfile, avoid freshening that packfile repeatedly in a tight loop.
Instead, only freshen pack files every 2 seconds.
|
|/ /
| |
| |
| |
| |
| | |
When writing an object, we calculate its OID and see if it exists in the
object database. If it does, we need to freshen the file that contains
it.
|
|\ \
| | |
| | | |
sysdir: don't assume an empty dir is uninitialized
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Don't try to determine when sysdirs are uninitialized. Instead, simply
initialize them all at `git_libgit2_init` time and never try to
reinitialize, except when consumers explicitly call `git_sysdir_set`.
Looking at the buffer length is especially problematic, since there may
no appropriate path for that value. (For example, the Windows-specific
programdata directory has no value on non-Windows machines.)
Previously we would continually trying to re-lookup these values,
which could get racy if two different threads are each calling
`git_sysdir_get` and trying to lookup / clear the value simultaneously.
|
|\ \ \
| | | |
| | | | |
Fix outdated comment
|
| | | |
| | | |
| | | |
| | | | |
Style guide says // style comments should be avoided.
|
| | | |
| | | |
| | | |
| | | | |
SSH transport seems to be supported now.
|
|\ \ \ \
| | | | |
| | | | | |
Enable https transport for custom TLS streams
|
| | | | | |
|
|\ \ \ \ \
| |_|_|_|/
|/| | | | |
mwindow: init mwindow files in git_libgit2_init
|
| | |_|/
| |/| | |
|
|\ \ \ \
| |/ / /
|/| | | |
git_diff_file: move `id_abbrev`
|
|/ / /
| | |
| | |
| | |
| | | |
Move `id_abbrev` to a more reasonable place where it packs more nicely
(before anybody starts using it).
|
|\ \ \
| | | |
| | | | |
Fix leaks, some warnings and an error
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | | |
And give it a default so that some compilers don't (unnecessarily)
complain.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
After 1cd65991, we were passing a pointer to an `unsigned long` to
a function that now expected a pointer to a `size_t`. These types
differ on 64-bit Windows, which means that we trash the stack.
Use `size_t`s in the packbuilder to avoid this.
|
| | | | |
|
| | | | |
|
| | | |
| | | |
| | | |
| | | | |
Compare the preimage to the image; don't compare the preimage to itself.
|
| | | | |
|
|\ \ \ \
| | | | |
| | | | | |
Coverity user model
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The `git_buf` structure seems to be too complicated to correctly
grasp for Coverity. As such, add simpler models trying to guide
Coverity and remove false positives related to these functions.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
The static analysis engine coverity allows for user models
overriding how it treats functions when analyzing code. Like
this, one can greatly reduce the rate of false positives and thus
make it easier to spot actual errors.
Add a user model that overrides function models for `git_buf_len`
and `git_vector_insert`, which together amount for a majority of
false positives.
|
|\ \ \ \ \
| |_|/ / /
|/| | | | |
remote: Handle missing config values when deleting a remote
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Somehow I ended up with the following in my ~/.gitconfig:
[branch "master"]
remote = origin
merge = master
rebase = true
I assume something went crazy while I was running the git.git tests
some time ago, and that I never noticed until now.
This is not a good configuration, but it shouldn't cause problems. But
it does. Specifically, if you have this in your config, and you
perform the following set of actions:
create a remote
fetch from that remote
create a branch off of the remote master branch called "master"
delete the branch
delete the remote
The remote delete fails with the message "Could not find key
'branch.master.rebase' to delete". This is because it's iterating over
the config entries (including the ones in the global config) and
believes that there is a master branch which must therefore have these
config keys.
https://github.com/libgit2/libgit2/issues/3856
|
|\ \ \ \
| |/ / /
|/| | | |
ci: point to the homebrew libssh2 install
|
| | | | |
|
|/ / / |
|
|\ \ \
| | | |
| | | | |
Add get user agent functionality.
|
| | |/
| |/| |
|
|\ \ \
| |/ /
|/| | |
Fixed bug while parsing INT64_MIN
|
| | | |
|
|\ \ \
| | | |
| | | | |
find_repo: Clean up and simplify logic
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
find_repo had a complex loop and heavily nested conditionals, making it
difficult to follow. Simplify this as much as possible:
- Separate assignments from conditionals.
- Check the complex loop condition in the only place it can change.
- Break out of the loop on error, rather than going through the rest of
the loop body first.
- Handle error cases by immediately breaking, rather than nesting
conditionals.
- Free repo_link unconditionally on the way out of the function, rather
than in multiple places.
- Add more comments on the remaining complex steps.
|
|\ \ \ \
| | | | |
| | | | | |
Add GIT_REPOSITORY_OPEN_FROM_ENV flag to respect $GIT_* environment vars
|
| | | | |
| | | | |
| | | | |
| | | | | |
Document GIT_REPOSITORY_OPEN_NO_DOTGIT and GIT_REPOSITORY_OPEN_FROM_ENV.
|
| |/ / / |
|