Log

Author Commit Date CI Message
Edward Thomson f28bae0c 2016-02-15T17:16:00 rebase: persist a single in-memory index When performing an in-memory rebase, keep a single index for the duration, so that callers have the expected index lifecycle and do not hold on to an index that is free'd out from under them.
Carlos Martín Nieto 5a296ad0 2016-02-12T00:55:20 Merge pull request #3610 from ethomson/rebase_bare rebase: introduce bare rebasing
Edward Thomson 2f2129b1 2016-02-11T15:47:01 Merge pull request #3612 from arthurschreiber/arthur/fix-3173 Horrible fix for #3173.
Arthur Schreiber 3679ebae 2016-02-11T23:37:52 Horrible fix for #3173.
Carlos Martín Nieto 460ae11f 2016-02-11T22:19:20 commit: don't forget the last header field When we moved the logic to handle the first one, wrong loop logic was kept in place which meant we still finished early. But we now notice it because we're not reading past the last LF we find. This was not noticed before as the last field in the tested commit was multi-line which does not trigger the early break.
Carlos Martín Nieto 66ce08a6 2016-02-11T22:16:34 Merge pull request #3607 from pks-t/pks/coverity-improvements Coverity improvements for GITERR_CHECK_ALLOC
Edward Thomson a202e0d4 2016-02-11T10:11:21 rebase: allow custom merge_options Allow callers of rebase to specify custom merge options. This may allow custom conflict resolution, or failing fast when conflicts are detected.
Edward Thomson ee667307 2016-02-11T10:48:48 rebase: introduce inmemory rebasing Introduce the ability to rebase in-memory or in a bare repository. When `rebase_options.inmemory` is specified, the resultant `git_rebase` session will not be persisted to disk. Callers may still analyze the rebase operations, resolve any conflicts against the in-memory index and create the commits. Neither `HEAD` nor the working directory will be updated during this process.
Patrick Steinhardt 50174ab4 2016-02-10T11:06:23 coverity: use https URL for posting build When posting our instrumented build results to Coverity we have to include sensitive information, in particular our authorization token. Currently we use an unencrypted channel to post this information, leading to the token being transferred in plain. Fix this by using a secured connection instead.
Patrick Steinhardt 8dddea42 2016-02-10T10:59:14 coverity: provide nodef for GITERR_CHECK_ALLOC Coverity currently lists a lot of errors with regard to GITERR_CHECK_ALLOC causing resource leaks. We know this macro is only invoked when we want to abort because we are out of memory. Coverity allows for overriding the default model where we know that certain functions guarantee a desired behavior. The user_nodefs.h is used to override the behavior of macros. Re-define GITERR_CHECK_ALLOC inside of it to specify its abort nature.
Vicent Marti 488e2b85 2016-02-09T16:26:58 Merge pull request #3599 from libgit2/gpgsign Introduce git_commit_extract_signature
Carlos Martín Nieto 534cc5a3 2016-02-09T16:10:43 Merge pull request #3603 from pks-t/pks/coverity-fixes Coverity fixes
Carlos Martín Nieto a65afb75 2016-02-08T18:51:13 Introduce git_commit_extract_signature This returns the GPG signature for a commit and its contents without the signature block, allowing for the verification of the commit's signature.
Carlos Martín Nieto ab87cb18 2016-02-09T14:53:10 Merge pull request #3602 from libgit2/cmn/header-field-2 commit: also match the first header field when searching
Patrick Steinhardt 24b8ed2b 2016-02-09T11:11:38 attr_file: fix resource leak
Patrick Steinhardt e2625457 2016-02-09T11:07:50 checkout: fix resource leak
Patrick Steinhardt 39c9dd24 2016-02-09T10:53:30 pack-objects: fix memory leak in packbuilder_config
Patrick Steinhardt 0b2437bb 2016-02-09T10:43:28 pack-objects: fix memory leak in compute_write_order
Patrick Steinhardt a53d2e39 2016-02-09T09:58:56 pack: do not free passed in poiter on error The function `git_packfile_stream_open` tries to free the passed in stream when an error occurs. The only call site is `git_indexer_append`, though, which passes in the address of a stream struct which has not been allocated on the heap. Fix the issue by simply removing the call to free. In case of an error we did not allocate any memory yet and otherwise it should be the caller's responsibility to manage it's object's lifetime.
Carlos Martín Nieto f55eca16 2016-02-09T07:17:26 commit: also match the first header field when searching We were searching only past the first header field, which meant we were unable to find e.g. `tree` which is the first field. While here, make sure to set an error message in case we cannot find the field.
Carlos Martín Nieto e0bbe781 2016-02-09T06:41:02 Merge pull request #3598 from pks-t/pks/coverity-fixes Coverity fixes
Carlos Martín Nieto 463f5351 2016-02-09T06:26:21 Merge pull request #3601 from ethomson/merge_doc Better document `git_merge_commits` redux
Edward Thomson b00c959f 2016-02-08T17:55:22 Better document `git_merge_commits` redux `git_merge_commits` and `git_merge` now *do* handle recursive base building for criss-cross merges. Remove the documentation that says that they do not. This reverts commit 5e44d9bcb6d5b20922f49b1913723186f8ced8b5.
Edward Thomson 7cdbb39e 2016-02-08T17:14:43 Merge pull request #3600 from ethomson/mailmap mailmap: add ethomson@github.com
Edward Thomson 88a4d084 2016-02-02T14:50:35 mailmap: add ethomson@github.com
Patrick Steinhardt a001846b 2016-02-08T17:05:57 curl_stream: fix unused cert infos When copying contents of the cURL certiinfo we duplicate the data but forget to actually put it into the vector.
Patrick Steinhardt fac42ff9 2016-02-08T16:58:08 merge: fix memory leak
Carlos Martín Nieto 0f814deb 2016-02-06T16:41:59 Merge pull request #3592 from ethomson/code_of_conduct Introduce Contributor Covenant
Carlos Martín Nieto 240b6fed 2016-02-05T15:19:24 Merge pull request #3578 from bubaflub/fix_small_memory_leak Free allocated pointer to curl stream on error
Edward Thomson efa8208c 2016-02-05T09:37:40 Merge pull request #3579 from ethomson/mingw_winhttp winhttp: name mangle class / iid on mingw
Edward Thomson 45165b12 2016-02-04T16:43:23 Merge pull request #3584 from jbreeden/export_fn Export git_stash_apply_init_options
Edward Thomson d8f72159 2016-02-04T15:49:00 Merge pull request #3594 from Ephemera/patch-1 Fix typo
Ephemera 804bcd6b 2016-02-05T01:59:07 Fix typo
Edward Thomson 612f2a60 2016-02-04T08:43:47 Merge pull request #3593 from nvanheuverzwijn/patch-1 Fix a typo in documentation
Nicolas Vanheuverzwijn 1087e6be 2016-02-03T17:27:04 Fix a typo in documentation
Edward Thomson 846632cd 2016-02-02T14:49:25 Introduce Contributor Covenant
jbreeden d02720d8 2016-01-23T17:13:25 Export git_stash_apply_init_options
Edward Thomson 5c7f2f01 2016-01-19T11:13:23 winhttp: name mangle class / iid on mingw Standard Windows type systems define CLSID_InternetSecurityManager and IID_IInternetSecurityManager, but MinGW lacks these definitions. As a result, we must hardcode these definitions ourselves. However, we should not use a public struct with those names, lest another library do the same thing and consumers cannot link to both.
Bob Kuo 8bd1c19e 2016-01-16T19:39:24 Free allocated pointer to curl stream on error
Carlos Martín Nieto 0f9d1549 2016-01-16T02:29:17 Merge pull request #3573 from pmq20/master-12jan16 Make packfile_unpack_compressed a private API
Carlos Martín Nieto 47cf739e 2016-01-13T17:57:54 Merge pull request #3569 from arthurschreiber/arthur/fix-windows-issues Fix some issues with generated pkg-config file
P.S.V.R b644e223 2016-01-13T11:02:38 Make packfile_unpack_compressed a private API
Arthur Schreiber 768e185c 2016-01-05T21:55:11 Wrap path in quotes to support paths containing whitespace.
Arthur Schreiber 8a0133c0 2016-01-05T19:07:27 Add winhttp dependencies to pc file.
Carlos Martín Nieto 700f0aff 2015-12-29T13:38:01 Merge pull request #3562 from mgorny/ssh-read-stderr-fail ssh_stream_read(): fix possible *bytes_read < 0 branch
Carlos Martín Nieto a3776489 2015-12-28T15:12:37 Merge pull request #3558 from libgit2/cmn/index-nolock index: get rid of the locking
Carlos Martín Nieto 9d81509a 2015-12-23T11:54:52 index: get rid of the locking We don't support using an index object from multiple threads at the same time, so the locking doesn't have any effect when following the rules. If not following the rules, things are going to break down anyway.
Carlos Martín Nieto ccad5a99 2015-12-28T11:22:48 Merge pull request #3565 from ethomson/templates Handle dotfiles as the repo template dir and inside the template dir
Edward Thomson 62602547 2015-12-26T22:39:22 git_repository_init: include dotfiles when copying templates Include dotfiles when copying template directory, which will handle both a template directory itself that begins with a dotfile, and any dotfiles inside the directory.
Edward Thomson 00282183 2015-12-26T22:32:17 repo::init tests: test a template dir with leading dot Ensure that we can handle template directories that begin with a leading dot.
Edward Thomson 5c042c5b 2015-12-26T22:06:45 repo::init tests: test init.templatedir setting Ensure that `git_repository_init` honors the `init.templatedir` configuration setting.
Edward Thomson a066b4cb 2015-12-26T18:31:22 Merge pull request #3552 from ReadmeCritic/master Update README URLs based on HTTP redirects
ReadmeCritic 1ce509fe 2015-12-26T15:51:32 Update libgit2-glib link
Edward Thomson 869320a8 2015-12-26T16:55:29 Merge pull request #3546 from Cruel/master Fix a couple function signatures
Michał Górny 02fdc2db 2015-12-26T17:17:05 ssh_stream_read(): fix possible *bytes_read < 0 branch Fix the possibility of returning successfully from ssh_stream_read() with *bytes_read < 0. This would occur if stdout channel read resulted in 0, and stderr channel read failed afterwards.
Edward Thomson 3d29b12c 2015-12-23T23:38:59 Merge pull request #3560 from drusk/readme_typo Fixed minor typo in README.md.
drusk 22829b74 2015-12-23T21:27:40 Fixed minor typo in README.md.
Carlos Martín Nieto e9c0d796 2015-12-21T21:47:10 Merge pull request #3554 from olshevskiy87/master typos in comments
Dmitriy Olshevskiy 91f0d186 2015-12-21T20:49:14 typos in comments
ReadmeCritic 1181ca0c 2015-12-17T08:36:04 Update README URLs based on HTTP redirects
Vicent Marti 9ec6839a 2015-12-17T10:29:58 Merge pull request #3551 from libgit2/vmg/commit-leak commit: Fix memory leak in test suite
Vicent Marti 5951445f 2015-12-17T10:13:04 commit: Fix memory leak in test suite
Vicent Marti 1850c99c 2015-12-17T10:09:02 Merge pull request #3550 from libgit2/vmg/index-fill-2 Index fill: Small fixups
Carlos Martín Nieto 4baf2d8b 2015-12-16T21:58:47 Merge pull request #3548 from tepas/patch-1 fix git_blob_create_fromchunks documentation
Vicent Marti ef8b7feb 2015-12-16T19:36:50 index: Also size-hint the hash table Note that we're not checking whether the resize succeeds; in OOM cases, we let it run with a "small" vector and hash table and see if by chance we can grow it dynamically as we insert the new entries. Nothing to lose really.
Vicent Marti d7d46cfb 2015-12-16T17:00:25 index: Preallocate the entries vector with size hint
Vicent Marti 0cc20a8c 2015-12-16T16:53:06 index: Adjust namemask & mode when filling
Carlos Martín Nieto f824259e 2015-12-16T15:18:42 Merge pull request #3549 from libgit2/vmg/index-fill merge: Use `git_index__fill` to populate the index
Vicent Marti 879ebab3 2015-12-16T12:30:52 merge: Use `git_index__fill` to populate the index Instead of calling `git_index_add` in a loop, use the new `git_index_fill` internal API to fill the index with the initial staged entries. The new `fill` helper assumes that all the entries will be unique and valid, so it can append them at the end of the entries vector and only sort it once at the end. It performs no validation checks. This prevents the quadratic behavior caused by having to sort the entries list once after every insertion.
tepas cf339ede 2015-12-16T09:25:18 fix git_blob_create_fromchunks documentation putting `0.` at the start of the line turns it into a numbered list.
Thomas Edvalson 95746a57 2015-12-14T19:21:09 Fix a couple function signatures
Edward Thomson 7f2c1469 2015-12-14T13:54:02 Merge pull request #3528 from chescock/Passthrough-from-credential-callback Treat GIT_PASSTHROUGH as though git_cred_acquire_cb isn't set.
Edward Thomson 30c8e260 2015-12-14T13:53:26 Merge pull request #3521 from pks-t/blame-line-overflow Line count overflow in git_blame_hunk and git_blame__entry
Carlos Martín Nieto 6aa06b65 2015-12-10T12:14:09 Merge pull request #3522 from pks-t/email-format-commit-message diff: include commit message when formatting patch
Carlos Martín Nieto dc49eb58 2015-12-10T11:57:44 Merge pull request #3538 from pks-t/pks/index-memory-leak index: always queue `remove_entry` for removal
Carlos Martín Nieto 0a294217 2015-12-09T20:56:04 Merge pull request #3542 from libgit2/cmn/reset-dir-file reset: perform the checkout before moving HEAD or the index
Carlos Martín Nieto 465c3b38 2015-12-09T19:16:11 reset: perform the checkout before moving HEAD or the index This keeps the state of the workdir the same as one from HEAD, removing a source of possible confusion when calculating the work that is to be done.
Carlos Martín Nieto 82885255 2015-12-09T13:57:15 CHANGELOG: add some things we missed
Carlos Martín Nieto 21b1e015 2015-12-08T21:11:58 Merge pull request #3539 from libgit2/typedef-submodule-cb Use a typedef for the submodule_foreach callback.
Edward Thomson d698929c 2015-12-08T13:12:27 Merge pull request #3537 from libgit2/cmn/tree-is-sorted tree: mark a tree as already sorted
joshaber ab273821 2015-12-08T11:58:19 Play nice with the docs.
joshaber eda726cf 2015-12-08T11:34:00 Use a typedef for the submodule_foreach callback. This fits with the style for the rest of the project, but more importantly, makes life easier for bindings authors who auto-generate code.
Patrick Steinhardt b057fdef 2015-12-08T16:00:35 index: always queue `remove_entry` for removal When replacing an index with a new one, we need to iterate through all index entries in order to determine which entries are equal. When it is not possible to re-use old entries for the new index, we move it into a list of entries that are to be removed and thus free'd. When we encounter a non-zero error code, though, we skip adding the current index entry to the remove-queue. `INSERT_MAP_EX`, which is the function last run before adding to the remove-queue, may return a positive non-zero code that indicates what exactly happened while inserting the element. In this case we skip adding the entry to the remove-queue but still continue the current operation, leading to a leak of the current entry. Fix this by checking for a negative return value instead of a non-zero one when we want to add the current index entry to the remove-queue.
Carlos Martín Nieto fc436469 2015-12-06T22:51:00 tree: mark a tree as already sorted The trees are sorted on-disk, so we don't have to go over them again. This cuts almost a fifth of time spent parsing trees.
Carlos Martín Nieto a3dc4190 2015-12-06T18:11:54 Merge pull request #3526 from sschuberth/cmake-number-compare CMakeLists: Compare CMAKE_SIZEOF_VOID_P as a number, not as a string
Carlos Martín Nieto 8febe654 2015-12-06T18:11:37 Merge pull request #3529 from mgorny/fix-checkout-test-umask checkout test: Apply umask to file-mode test as well
Edward Thomson 5d1f31c6 2015-12-03T17:42:52 Merge pull request #3530 from libgit2/cmn/parse-mode tree: use a specialised mode parse function
Carlos Martín Nieto 2d36e145 2015-12-03T23:37:37 Merge pull request #3534 from ethomson/index_canonicalize_fix index: canonicalize inserted paths safely
Edward Thomson 626f9e24 2015-12-03T16:27:15 index: canonicalize inserted paths safely When adding to the index, we look to see if a portion of the given path matches a portion of a path in the index. If so, we will use the existing path information. For example, when adding `foo/bar.c`, if there is an index entry to `FOO/other` and the filesystem is case insensitive, then we will put `bar.c` into the existing tree instead of creating a new one with a different case. Use `strncmp` to do that instead of `memcmp`. When we `bsearch` into the index, we locate the position where the new entry would go. The index entry at that position does not necessarily have a relation to the entry we're adding, so we cannot make assumptions and use `memcmp`. Instead, compare them as strings. When canonicalizing paths, we look for the first index entry that matches a given substring.
Carlos Martín Nieto 0174f21b 2015-12-02T18:56:31 tree: use a specialised mode parse function Instead of going out to strtol, which is made to parse generic numbers, copy a parse function from git which is specialised for file modes.
Sebastian Schuberth 0878ca9b 2015-10-07T10:31:07 CMakeLists: Compare CMAKE_SIZEOF_VOID_P as a number, not as a string
Michał Górny 326c9fc2 2015-12-01T20:41:23 checkout test: Apply umask to file-mode test as well Fix the file-mode test to expect system umask being applied to the created file as well (it is currently applied to the directory only). This fixes the test on systems where umask != 022. Signed-off-by: Michał Górny <mgorny@gentoo.org>
Chris Hescock efd9ab56 2015-11-20T11:26:26 Treat GIT_PASSTHROUGH as though git_cred_acquire_cb isn't set.
Edward Thomson 15e6a5af 2015-12-01T08:45:55 Merge pull request #3527 from pks-t/pks/tree-entry-memleak tree: mark cloned tree entries as un-pooled
Patrick Steinhardt 9487585d 2015-12-01T14:19:29 tree: mark cloned tree entries as un-pooled When duplicating a `struct git_tree_entry` with `git_tree_entry_dup` the resulting structure is not allocated inside a memory pool. As we do a 1:1 copy of the original struct, though, we also copy the `pooled` field, which is set to `true` for pooled entries. This results in a huge memory leak as we never free tree entries that were duplicated from a pooled tree entry. Fix this by marking the newly duplicated entry as un-pooled.
Patrick Steinhardt 254e0a33 2015-11-24T13:43:43 diff: include commit message when formatting patch When formatting a patch as email we do not include the commit's message in the formatted patch output. Implement this and add a test that verifies behavior.
Patrick Steinhardt 7f8fe1d4 2015-12-01T10:03:56 commit: introduce `git_commit_body` It is already possible to get a commit's summary with the `git_commit_summary` function. It is not possible to get the remaining part of the commit message, that is the commit message's body. Fix this by introducing a new function `git_commit_body`.
Patrick Steinhardt 944dbd12 2015-11-24T10:52:17 blame: use size_t for line counts in git_blame__entry The `git_blame__entry` struct keeps track of line counts with `int` fields. Since `int` is only guaranteed to be at least 16 bits we may overflow on certain platforms when line counts exceed 2^15. Fix this by instead storing line counts in `size_t`.
Patrick Steinhardt cb1cb24c 2015-11-24T10:18:58 blame: use size_t for line counts in git_blame_hunk It is not unreasonable to have versioned files with a line count exceeding 2^16. Upon blaming such files we fail to correctly keep track of the lines as `git_blame_hunk` stores them in `uint16_t` fields. Fix this by converting the line fields of `git_blame_hunk` to `size_t`. Add test to verify behavior.
Edward Thomson 337b2b08 2015-11-30T20:53:54 Merge pull request #3508 from libgit2/cmn/tree-parse-speed Improvements to tree parsing speed