- 14 Sep, 2016 1 commit
-
-
When trying to determine if we can safely overwrite an existing workdir item, we may need to calculate the oid for the workdir item to determine if its identical to the old side (and eligible for removal). We previously did this regardless of the type of entry in the workdir; if it was a directory, we would open(2) it and then try to read(2). The read(2) of a directory fails on many platforms, so we would treat it as if it were unmodified and continue to perform the checkout. On FreeBSD, you _can_ read(2) a directory, so this pattern failed. We would calculate an oid from the data read and determine that the directory was modified and would therefore generate a checkout conflict. This reliance on read(2) is silly (and was most likely accidentally giving us the behavior we wanted), we should be explicit about the directory test.
Edward Thomson committed
-
- 30 Aug, 2016 3 commits
-
-
tests: index: do not re-allocate index
Carlos Martín Nieto committed -
Patrick Steinhardt committed
-
According to the reference the git_checkout_tree and git_checkout_head functions should accept NULL in the opts field This was broken since the opts field was dereferenced and thus lead to a crash.
Stefan Huber committed
-
- 29 Aug, 2016 4 commits
-
-
README: adjust URL to libqgit2 repository
Edward Thomson committed -
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 -
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 4 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
-