| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
This works around strict aliasing rules letting some versions of
GCC (particularly on RHEL 6) thinking that they can skip updating the
size of the array when calculating the next element's offset.
|
|
|
|
|
|
|
|
|
|
| |
Preallocating two commits doesn't make much sense as leaving allocation
to the first array usage will allocate a sensible size with room for
growth.
This preallocation has also been hiding issues with strict aliasing in
the tests, as we have fairly simple histories and never trigger the
growth.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
We used to assume a refspec would only have an asterisk in the middle of
their respective pattern. This has not been a valid assumption for some
time now with git.
Instead of assuming where the asterisk is going to be, change the logic
to treat each pattern as having two halves with a replacement bit in the
middle, where the asterisk is.
|
|
|
|
|
|
| |
When transforming a non-pattern refspec, we simply need to copy over the
opposite string. Move that logic up to the wrapper so we can assume a
pattern refspec in the transformation function.
|
| |
|
| |
|
|
|
|
|
|
| |
In order to connect to a remote server, we need to provide a path to the
repository we're interested in. Consider the lack of path in the url an
error.
|
|
|
|
|
|
|
|
|
|
| |
When the stream writing function was written, it assume that
libssh2_channel_write() would always write all of the data to the
wire. This is only true for the first 32k of data, which it tries to
fit into one ssh packet.
Since it can perform short writes, call it in a loop like we do for
send(), advancing the buffer offset.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To make sure that items returned from pool allocations are aligned
on nice boundaries, this rounds up all pool allocation sizes to a
multiple of 8. This adds a small amount of overhead to each item.
The rounding up could be made optional with an extra parameter to
the pool initialization that turned on rounding only for pools
where item alignment actually matters, but I think for the extra
code and complexity that would be involved, that it makes sense
just to burn a little bit of extra memory and enable this all the
time.
|
|
|
|
|
| |
This lets a user decide they do want to use keyboard-interactive after
they've compiled.
|
|
|
|
|
|
|
|
|
|
|
| |
When linking against libssh2, create the transport.h such that it
contains its definition for custom crypto and keyboard-interactive
callbacks.
If we don't link against libssh2, create an equivalent signature which
has void pointers instead of pointers to libssh2 structures.
This would be one way to fix #2438.
|
|
|
|
|
|
|
|
| |
The OpenSSL library-loading functions do not expect to be called
multiple times. Add a flag in the non-threaded libgit2 init so we only
call once.
This fixes #2446.
|
|\
| |
| | |
treebuilder: set the attributes before sorting and inserting
|
|/
|
|
|
|
| |
We need to set the attributes before we try to insert it into the
vector, as the comparison function needs to know whether the entry is a
tree or not.
|
|\ |
|
| |\
| | |
| | | |
Don't use read-write accounts for the tests
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The assembla failure we were seeing referred to a private repository,
which is not what is there at the moment.
This reverts 1fd21b0342f
|
| | |
| | |
| | |
| | |
| | |
| | | |
Don't write in plaintext the password of an account which has full
control over the repository. Instead use an account with read-only
access.
|
| |\ \
| | |/
| |/| |
netops: init OpenSSL once under lock
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Bring together all of the OpenSSL initialization to
git_threads_init() so it's together and doesn't need locks.
Moving it here also gives us libssh2 thread safety (when built against
openssl).
|
| | | |
|
| | |
| | |
| | |
| | | |
OpenSSL's tests init everything in the main thread, so let's do that.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When using in a multithreaded context, OpenSSL needs to lock, and leaves
it up to application to provide said locks.
We were not doing this, and it's just luck that's kept us from crashing
up to now.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The OpenSSL init functions are not reentrant, which means that running
multiple fetches in parallel can cause us to crash.
Use a mutex to init OpenSSL, and since we're adding this extra checks,
init it only once.
|
| | |
| | |
| | |
| | |
| | | |
We want to check whether the credentials callback is NULL, not whether
the payload is.
|
| | |
| | |
| | |
| | |
| | | |
Add docs for git_clone_local_t and move the docs for the
git_clone_options to each field.
|
| |\ \
| | | |
| | | | |
revwalk: more sensible array handling
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Instead of using a sentinel empty value to detect the last commit, let's
check for when we get a NULL from popping the stack, which lets us know
when we're done.
The current code causes us to read uninitialized data, although only on
RHEL/CentOS 6 in release mode. This is a readability win overall.
|
| |\ \
| | | |
| | | | |
treebuilder: insert sorted
|
| | | |
| | | |
| | | |
| | | |
| | | | |
By inserting in the right position, we can keep the vector sorted,
making entry insertion almost twice as fast.
|
| |/ / |
|
| | | |
|
| |\ \ |
|
| | | |
| | | |
| | | |
| | | | |
Bump library version to 0.21.0 and SONAME to 21
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Since the SOVERSION doesn't need to follow the library's version and
simply needs to be monotonically increasing whenever we release
something that breaks the ABI, we can set some number and allow multiple
versions of the library to be installed side-by-side.
We start here with the minor version as that's what we release for now,
and it allows to backport this change to earlier versions.
|
| |\ \
| | | |
| | | | |
More remote rename fixes
|
| | | |
| | | |
| | | |
| | | | |
This was a bad idea. Don't free except in the free function.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
A symref inside the namespace gets renamed, we should make it point to
the target's new name.
This is for the origin/HEAD -> origin/master type of situations.
|
| | | | |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
There is no reason why we need to use a callback here. A string array
fits better with the usage, as this is not an event and we don't need
anything from the user.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
We must make sure that the name pointer remains valid, so make sure to
allocate the new one before freeing the old one and swap them so the
user never sees an invalid pointer.
|
| | |/
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We don't allow renames of anonymous remotes, so there's no need to
handle them.
A remote is always associated with a repository, so there's no need to
check for that.
|
| |\ \
| | | |
| | | | |
Win32: Fix object::cache::threadmania test on x64
|
| | | | |
|
| |/ / |
|
| |\ \
| | |/
| |/| |
Win32 test fixes
|
| | | |
|