- 29 Aug, 2016 2 commits
-
-
Plug a memory leak caused by re-allocating a `git_index` structure which has already been allocated by the test suite's initializer.
Patrick Steinhardt committed -
transports: http: set substream as disconnected after closing
Patrick Steinhardt committed
-
- 26 Aug, 2016 1 commit
-
-
Teach `git_patch_from_diff` about parsed diffs
Edward Thomson committed
-
- 24 Aug, 2016 2 commits
-
-
Ensure that `git_patch_from_diff` can return the patch for parsed diffs, not just generate a patch for a generated diff.
Edward Thomson committed -
filesystem_iterator: fixed double free on error
Patrick Steinhardt committed
-
- 22 Aug, 2016 1 commit
-
-
Jason Haslam committed
-
- 17 Aug, 2016 4 commits
-
-
Support index v4
Edward Thomson committed -
ignore: allow unignoring basenames in subdirectories
Edward Thomson committed -
Patrick Steinhardt committed
-
When calling `http_connect` on a subtransport whose stream is already connected, we first close the stream in case no keep-alive is in use. When doing so, we do not reset the transport's connection state, though. Usually, this will do no harm in case the subsequent connect will succeed. But when the connection fails we are left with a substransport which is tagged as connected but which has no valid stream attached. Fix the issue by resetting the subtransport's connected-state when closing its stream in `http_connect`.
Patrick Steinhardt committed
-
- 12 Aug, 2016 1 commit
-
-
The .gitignore file allows for patterns which unignore previous ignore patterns. When unignoring a previous pattern, there are basically three cases how this is matched when no globbing is used: 1. when a previous file has been ignored, it can be unignored by using its exact name, e.g. foo/bar !foo/bar 2. when a file in a subdirectory has been ignored, it can be unignored by using its basename, e.g. foo/bar !bar 3. when all files with a basename are ignored, a specific file can be unignored again by specifying its path in a subdirectory, e.g. bar !foo/bar The first problem in libgit2 is that we did not correctly treat the second case. While we verified that the negative pattern matches the tail of the positive one, we did not verify if it only matches the basename of the positive pattern. So e.g. we would have also negated a pattern like foo/fruz_bar !bar Furthermore, we did not check for the third case, where a basename is being unignored in a certain subdirectory again. Both issues are fixed with this commit.
Patrick Steinhardt committed
-
- 10 Aug, 2016 2 commits
-
-
Support reading and writing index v4. Index v4 uses a very simple compression scheme for pathnames, but is otherwise similar to index v3. Signed-off-by: David Turner <dturner@twitter.com>
David Turner committed -
This code is ported from git.git Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: David Turner <dturner@twopensource.com>
David Turner committed
-
- 09 Aug, 2016 4 commits
-
-
stransport memory management improvements
Carlos Martín Nieto committed -
tests: blob: remove unused callback function
Edward Thomson committed -
Patrick Steinhardt committed
-
When failing to initialize a new stransport stream, we try to release already allocated memory by calling out to `git_stream_free`, which in turn called out to the stream's `free` function pointer. As we only initialize the function pointer later on, this leads to a `NULL` pointer exception. Furthermore, plug another memory leak when failing to create the SSL context.
Patrick Steinhardt committed
-
- 08 Aug, 2016 4 commits
-
-
odb: only provide the empty tree
Carlos Martín Nieto committed -
stransport: make internal functions static
Edward Thomson committed -
Patrick Steinhardt committed
-
diff: document `git_diff_from_buffer`
Carlos Martín Nieto committed
-
- 06 Aug, 2016 2 commits
-
-
Edward Thomson committed
-
Edward Thomson committed
-
- 05 Aug, 2016 7 commits
-
-
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).
Edward Thomson committed -
SecureTransport: handle NULL trust on success
Edward Thomson committed -
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.
Carlos Martín Nieto committed -
clar: fix parsing of test suite prefixes
Carlos Martín Nieto committed -
Patch image initialization
Edward Thomson committed -
Patrick Steinhardt committed
-
Patrick Steinhardt committed
-
- 04 Aug, 2016 10 commits
-
-
odb: freshen existing objects when writing
Edward Thomson committed -
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.
Edward Thomson committed -
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.
Edward Thomson committed -
sysdir: don't assume an empty dir is uninitialized
Carlos Martín Nieto committed -
Fix outdated comment
Edward Thomson committed -
Enable https transport for custom TLS streams
Edward Thomson committed -
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.
Edward Thomson committed -
mwindow: init mwindow files in git_libgit2_init
Edward Thomson committed -
Edward Thomson committed
-
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.
Patrick Steinhardt committed
-