- 30 Dec, 2017 6 commits
-
-
Support using notes via a commit rather than a ref
Edward Thomson committed -
Transfer fewer objects on push and local fetch
Edward Thomson committed -
refs: traverse symlinked directories
Edward Thomson committed -
Inflate large loose blobs
Edward Thomson committed -
Ensure that we can recurse into directories via symbolic links.
Edward Thomson committed -
Perform some error checking when examining symlink directories.
Edward Thomson committed
-
- 29 Dec, 2017 1 commit
-
-
Native Git allows symlinked directories under .git/refs. This change allows libgit2 to also look for references that live under symlinked directories. Signed-off-by: Andy Doan <andy@opensourcefoundries.com>
Andy Doan committed
-
- 28 Dec, 2017 1 commit
-
-
FETCH_HEAD and multiple refspecs
Edward Thomson committed
-
- 26 Dec, 2017 4 commits
-
-
Carlos Martín Nieto committed
-
We treat each refspec on its own, but the code currently overwrites the contents of FETCH_HEAD so we end up with the entries for the last refspec we processed. Instead, truncate it before performing the updates and append to it when updating the references.
Carlos Martín Nieto committed -
We want to do this in order to get FETCH_HEAD to be empty when we start updating it due to fetching from the remote.
Carlos Martín Nieto committed -
Carlos Martín Nieto committed
-
- 23 Dec, 2017 7 commits
-
-
patch_parse: fix parsing unquoted filenames with spaces
Edward Thomson committed -
Fix unpack double free
Edward Thomson committed -
If an element has been cached, but then the call to packfile_unpack_compressed() fails, the very next thing that happens is that its data is freed and then the element is not removed from the cache, which frees the data again. This change sets obj->data to NULL to avoid the double-free. It also stops trying to resolve deltas after two continuous failed rounds of resolution, and adds a test for this.
lhchavez committed -
Free OpenSSL peer certificate
Edward Thomson committed -
libFuzzer: Prevent a potential shift overflow
Edward Thomson committed -
cmake: let USE_ICONV be optional on macOS
Edward Thomson committed -
Do not attempt to check out submodule as blob when merging a submodule modify/deltete conflict
Edward Thomson committed
-
- 20 Dec, 2017 10 commits
-
-
Writing very large files may be slow, particularly on inefficient filesystems and when running instrumented code to detect invalid memory accesses (eg within valgrind or similar tools). Introduce `GITTEST_SLOW` so that tests that are slow can be skipped by the CI system.
Edward Thomson committed -
Teach the CommonCrypto hash mechanisms to support large files. The hash primitives take a `CC_LONG` (aka `uint32_t`) at a time. So loop to give the hash function at most an unsigned 32 bit's worth of bytes until we have hashed the entire file.
Edward Thomson committed -
Teach the win32 hash mechanisms to support large files. The hash primitives take at most `ULONG_MAX` bytes at a time. Loop, giving the hash function the maximum supported number of bytes, until we have hashed the entire file.
Edward Thomson committed -
Check the size of objects being read from the loose odb backend and reject those that would not fit in memory with an error message that reflects the actual problem, instead of error'ing later with an unintuitive error message regarding truncation or invalid hashes.
Edward Thomson committed -
Instead of paging to zlib in INT_MAX sized chunks, we can give it as many as UINT_MAX bytes at a time. zlib doesn't care how big a buffer we give it, this simply results in fewer calls into zlib.
Edward Thomson committed -
zlib will only inflate/deflate an `int`s worth of data at a time. We need to loop through large files in order to ensure that we inflate the entire file, not just an `int`s worth of data. Thankfully, we already have this loop in our `git_zstream` layer. Handle large objects using the `git_zstream`.
Edward Thomson committed -
Introduce an internal API to get the object type based on a length-specified (not null terminated) string representation. This can be used to compare the (space terminated) object type name in a loose object. Reimplement `git_object_string2type` based on this API.
Edward Thomson committed -
Introduce a test for very large objects in the ODB. Write a large object (5 GB) and ensure that the write succeeds and provides us the expected object ID. Introduce a test that writes that file and ensures that we can subsequently read it.
Edward Thomson committed -
Introduce `git_prefixncmp` that will search up to the first `n` characters of a string to see if it is prefixed by another string. This is useful for examining if a non-null terminated character array is prefixed by a particular substring. Consolidate the various implementations of `git__prefixcmp` around a single core implementation and add some test cases to validate its behavior.
Edward Thomson committed -
zlib will return `Z_BUF_ERROR` whenever there is more input to inflate or deflate than there is output to store the result. This is normal for us as we iterate through the input, particularly with very large input buffers.
Edward Thomson committed
-
- 19 Dec, 2017 1 commit
-
-
Add Jonathan Tan to git.git-authors
Edward Thomson committed
-
- 18 Dec, 2017 1 commit
-
-
Jonathan has consented via email to have his contributions to git reused in libgit2
Charlie Somerville committed
-
- 16 Dec, 2017 1 commit
-
-
diff_file: properly refcount blobs when initializing file contents
Edward Thomson committed
-
- 15 Dec, 2017 6 commits
-
-
Per SSL_get_peer_certificate docs: ``` The reference count of the X509 object is incremented by one, so that it will not be destroyed when the session containing the peer certificate is freed. The X509 object must be explicitly freed using X509_free(). ```
Etienne Samson committed -
This makes it easier to cleanup allocated resources on exit.
Etienne Samson committed -
lhchavez committed
-
libFuzzer: Fix missing trailer crash
Patrick Steinhardt committed -
When initializing a `git_diff_file_content` from a source whose data is derived from a blob, we simply assign the blob's pointer to the resulting struct without incrementing its refcount. Thus, the structure can only be used as long as the blob is kept alive by the caller. Fix the issue by using `git_blob_dup` instead of a direct assignment. This function will increment the refcount of the blob without allocating new memory, so it does exactly what we want. As `git_diff_file_content__unload` already frees the blob when `GIT_DIFF_FLAG__FREE_BLOB` is set, we don't need to add new code handling the free but only have to set that flag correctly.
Patrick Steinhardt committed -
stransport: provide error message on trust failures
Patrick Steinhardt committed
-
- 14 Dec, 2017 1 commit
-
-
Fixes #4440
Etienne Samson committed
-
- 09 Dec, 2017 1 commit
-
-
lhchavez committed
-