Log

Author Commit Date CI Message
Brock Peabody 4d99c4cf 2016-11-23T18:32:48 Allow for caching of submodules. Added `git_repository_submodule_cache_all` to initialze a cache of submodules on the repository so that operations looking up N submodules are O(N) and not O(N^2). Added a `git_repository_submodule_cache_clear` function to remove the cache. Also optimized the function that loads all submodules as it was itself O(N^2) w.r.t the number of submodules, having to loop through the `.gitmodules` file once per submodule. I changed it to process the `.gitmodules` file once, into a map. Signed-off-by: David Turner <dturner@twosigma.com>
David Turner ca05857e 2016-11-23T18:26:19 Fix formatting Signed-off-by: David Turner <dturner@twosigma.com>
Carlos Martín Nieto df4dfaad 2017-01-16T12:29:52 Merge pull request #4055 from ethomson/ethomson/ntlm WinHTTP: support best auth mechanism
Edward Thomson 4e4a1460 2016-12-30T12:13:34 WinHTTP: support best auth mechanism For username/password credentials, support NTLM or Basic (in that order of priority). Use the WinHTTP built-in authentication support for both, and maintain a bitfield of the supported mechanisms from the response.
Edward Thomson cb76eed5 2017-01-14T17:41:49 Merge pull request #4054 from jfultz/jfultz/fix_GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH Fix handling of GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH flag.
Carlos Martín Nieto 2854e619 2017-01-14T17:12:23 Merge pull request #4061 from libgit2/ethomson/merge_opts merge: set default rename threshold
Edward Thomson 07bb8078 2017-01-14T16:01:53 CHANGELOG: update `GIT_MERGE_OPTIONS_INIT` changes
Carlos Martín Nieto a6d833a2 2017-01-13T17:05:58 Merge pull request #4049 from libgit2/ethomson/error_msgs giterr_set: consistent error messages
Edward Thomson ffe259d9 2017-01-11T11:52:06 Merge pull request #4074 from fcharlie/master fix examples/network/clone.c: heap-buffer-overflow
Carlos Martín Nieto ee89941f 2017-01-09T20:59:43 Merge remote-tracking branch 'upstream/maint/v0.25'
Carlos Martín Nieto 2fcb8705 2017-01-09T20:26:45 Merge pull request #4076 from libgit2/cmn/sec-update-25 security updates for v0.25
Carlos Martín Nieto 2ac57aa8 2017-01-09T17:53:21 https: don't test that RC4 is invalid None of our crypto backends actually reject RC4 as a cipher so don't test for it and instead keep it as something we'd like to do.
Carlos Martín Nieto 3829ba2e 2017-01-09T17:50:17 http: correct the expected error for RC4 We must make sure that we're getting a certificate error from the library so we know that we're testing the right thing.
Force.Charlie-I 3fdba15c 2017-01-09T14:09:57 fix examples/network/clone.c: heap-buffer-overflow Format of a length of string to the correct format is:%.*s
Edward Thomson a5cf255b 2017-01-06T17:15:53 Bump version to 0.25.1
Edward Thomson 6850b516 2017-01-06T17:12:16 Merge branch '25_smartpktparse' into maint/v0.25
Patrick Steinhardt 2fdef641 2016-11-15T11:44:51 smart_pkt: treat empty packet lines as error The Git protocol does not specify what should happen in the case of an empty packet line (that is a packet line "0004"). We currently indicate success, but do not return a packet in the case where we hit an empty line. The smart protocol was not prepared to handle such packets in all cases, though, resulting in a `NULL` pointer dereference. Fix the issue by returning an error instead. As such kind of packets is not even specified by upstream, this is the right thing to do.
Patrick Steinhardt 66e3774d 2016-11-15T11:36:27 smart_pkt: verify packet length exceeds PKT_LEN_SIZE Each packet line in the Git protocol is prefixed by a four-byte length of how much data will follow, which we parse in `git_pkt_parse_line`. The transmitted length can either be equal to zero in case of a flush packet or has to be at least of length four, as it also includes the encoded length itself. Not checking this may result in a buffer overflow as we directly pass the length to functions which accept a `size_t` length as parameter. Fix the issue by verifying that non-flush packets have at least a length of `PKT_LEN_SIZE`.
Edward Thomson ab8a0fdb 2017-01-06T17:10:49 Merge branch '25_certcheckcb' into maint/v0.25
Carlos Martín Nieto 98d66240 2017-01-06T10:51:31 http: perform 'badssl' check also via certificate callback Make sure that the callbacks do also get a 'valid' value of zero when the certificate we're looking at is in valid and assert that within the test.
Etienne Samson 9a64e62f 2016-12-21T21:24:33 http: check certificate validity before clobbering the error variable
Edward Thomson 5afd0f9b 2017-01-06T12:33:17 Merge pull request #4065 from simonbyrne/sb/changelog Mention field addition in breaking API changes
Simon Byrne d8f984bc 2017-01-03T10:54:24 move git_merge_options changes to correct location
Simon Byrne 31c78299 2017-01-03T10:11:52 mention field addition in breaking API changes
Edward Thomson 19ed4d0c 2017-01-01T22:19:23 merge: set default rename threshold When `GIT_MERGE_FIND_RENAMES` is set, provide a default for `rename_threshold` when it is unset.
Edward Thomson 805b90aa 2016-12-31T15:06:10 Merge pull request #4015 from staticfloat/sf/win_http_parser Allow Windows with WinHTTP to use external http-parser
Elliot Saba e56e4c76 2016-12-30T17:59:47 CMakeLists: Move `http-parser` block down by `zlib`, update error message
Edward Thomson c9b99689 2016-12-30T19:14:02 Merge pull request #4052 from dglsswnsn/master Fix issue #4046 Seg fault in config_files()
Edward Thomson 42ad85ef 2016-12-30T16:35:24 Merge pull request #4043 from fudanchii/fudanchii/openbsd Fix BIO_* functions method linking when compiled with libressl (OpenBSD).
John Fultz 5f959dca 2016-12-29T19:26:50 Fix handling of GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH flag. git_checkout_tree() sets up its working directory iterator to respect the pathlist if GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH is present, which is great. What's not so great is that this iterator is then used side-by-side with an iterator created by git_checkout_iterator(), which did not set up its pathlist appropriately (although the iterator mirrors all other iterator options). This could cause git_checkout_tree() to delete working tree files which were not specified in the pathlist when GIT_CHECKOUT_DISABLE_PATHSPEC_MATCH was used, as the unsynchronized iterators causes git_checkout_tree() to think that files have been deleted between the two trees. Oops. And added a test which fails without this fix (specifically, the final check for "testrepo/README" to still be present fails).
Douglas Swanson 832278bf 2016-12-29T07:43:03 Fix issue #4046 Seg fault in config_files()
Edward Thomson 8f0d5cde 2016-12-29T12:55:49 tests: update error message checking
Edward Thomson 909d5494 2016-12-29T12:25:15 giterr_set: consistent error messages Error messages should be sentence fragments, and therefore: 1. Should not begin with a capital letter, 2. Should not conclude with punctuation, and 3. Should not end a sentence and begin a new one
Edward Thomson 238b8ccd 2016-12-29T11:07:37 Merge pull request #4048 from jacquesg/rebase-error-check rebase: check the result code of rebase_init_merge
Jacques Germishuys f928c69a 2016-12-29T12:54:26 rebase: check the result code of rebase_init_merge
Edward Thomson 7829b411 2016-12-27T12:26:44 Merge pull request #4044 from jacquesg/mempack-version mempack: set the odb backend version
Jacques Germishuys 6a8127d7 2016-12-25T22:13:48 mempack: set the odb backend version
Nurahmadie 567b83de 2016-12-24T17:43:08 Fix BIO_* functions method linking when compiled with libressl. ref: https://github.com/gentoo/libressl/blob/672ac74ce7b7cb2e4799b2d66bc0b1b1efa3454e/media-video/ffmpeg/files/ffmpeg-3.2-libressl.patch
Carlos Martín Nieto 75db289a 2016-12-20T19:14:20 Merge pull request #3980 from tiennou/doc-fixes Documentation fixes
Edward Thomson 42864e58 2016-12-20T17:17:12 Merge pull request #4041 from libgit2/cmn/bump-pretend-git http: bump the pretend git version in the User-Agent
Carlos Martín Nieto fafafb1f 2016-12-20T16:19:30 http: bump the pretend git version in the User-Agent We want to keep the git UA in order for services to recognise that we're a Git client and not a browser. But in order to stop dumb HTTP some services have blocked UAs that claim to be pre-1.6.6 git. Thread these needles by using the "git/2.0" prefix which is still close enough to git's yet distinct enough that you can tell it's us.
Edward Thomson 8d7717c4 2016-12-20T15:32:49 Merge pull request #4034 from libgit2/cmn/sysdir-no-reguess sysdir: don't re-guess when using variable substitution
Edward Thomson f91f170f 2016-12-20T15:28:46 Merge pull request #4032 from libgit2/cmn/https-cap-no-hardcode Don't hard-code HTTPS cap & clarify the meanings of the features enum
Carlos Martín Nieto 329ce043 2016-12-20T12:14:22 Merge pull request #4037 from libgit2/cmn/goals README: be more explicit in the goals and scope
Carlos Martín Nieto b0b850bf 2016-12-19T18:04:20 Merge pull request #4038 from lucasderraugh/patch-1 Gift deprecated in favor of SwiftGit2
Carlos Martín Nieto 3714c13a 2016-12-19T17:28:41 Merge pull request #4026 from libgit2/cmn/refdb-fs-errors refdb: bubble up recursive rm when locking a ref
Carlos Martín Nieto 903955f7 2016-12-19T17:26:09 Merge pull request #4027 from pks-t/pks/pack-deref-cache-on-error pack: dereference cached pack entry on error
Lucas Derraugh 87faeaec 2016-12-19T09:09:34 Gift deprecated in favor of SwiftGit2
Carlos Martín Nieto 34901679 2016-12-19T16:25:01 Merge pull request #4033 from andhe/master Fix off-by-one problems in git_signature__parse
Carlos Martín Nieto 8f064000 2016-12-19T13:54:55 README: be more explicit in the goals and scope Make it clearer from the get-go that we do not aim to implement user-facing commands from the git tool.
Carlos Martín Nieto 9f09f290 2016-12-17T18:20:29 sysdir: don't guess the paths again when $PATH is specified We should replace it with whatever the user set, not start again.
Carlos Martín Nieto 410855fc 2016-12-17T18:18:30 sysdir: add failing test for variable substitution When given $PATH as part of a search path, we guess again instead of substituting what the user already set.
Andreas Henriksson 23c9ff86 2016-12-17T17:33:13 Fix off-by-one problems in git_signature__parse Etc/GMT-14 aka UTC+14:00 is a thing.... https://en.wikipedia.org/wiki/UTC%2B14:00 Also allow offsets on the last minute (59). Addresses: https://bugs.debian.org/841532 Fixes: #3970
Carlos Martín Nieto 77e46232 2016-12-17T14:31:36 settings: clarify what each value means Most importantly, clarify what it means for HTTPS and SSH to be supported.
Carlos Martín Nieto 061a0ad1 2016-12-17T14:23:35 settings: don't hard-code HTTPS capability This partially reverts bdec62dce1c17465b7330100ea2f71e63fc411dd which activates the transport code-paths which allow you to use a custom TLS implementation without having to have one at build-time. However the capabilities describe how libgit2 was built, not what it could potentially support, bring back the ifdefs so we only say we support HTTPS if libgit2 was itself built with a TLS implementation.
Carlos Martín Nieto c655def1 2016-12-17T01:12:49 Merge pull request #4031 from libgit2/cmn/plug-test-leak rebase: plug a leak in the tests
Carlos Martín Nieto f7dcd58c 2016-12-17T00:55:06 rebase: plug a leak in the tests
Carlos Martín Nieto 6ab65b80 2016-12-11T17:56:38 refdb: bubble up recursive rm when locking a ref Failure to bubble up this error means some locking errors do not get reported as such on Windows.
Edward Thomson c5e6ba28 2016-12-15T18:19:49 Merge pull request #4029 from libgit2/cmn/windows-no-concurrent-compress refdb: disable concurrent compress in the threading tests on Windows
Carlos Martín Nieto 9d5f12ff 2016-12-12T22:43:11 Merge pull request #4018 from pks-t/pks/various-fixes Various fixes
Carlos Martín Nieto b31283a6 2016-12-12T17:09:12 refdb: disable concurrent compress in the threading tests on Windows This is far from an ideal situation, but this causes issues on Windows which make it harder to develop anything, as these tests hit issues which relate specifically to the Windows filesystem like permission errors for files we should be able to access. There is an issue likely related to the ordering of the repack, but there's enough noise that it does not currently help us to run this aspect of the test in CI.
Patrick Steinhardt ff5eea06 2016-12-12T09:36:15 pack: dereference cached pack entry on error When trying to uncompress deltas in a packfile's delta chain, we try to add object bases to the packfile cache, subsequently decrementing its reference count if it has been added successfully. This may lead to a mismatched reference count in the case where we exit the loop early due to an encountered error. Fix the issue by decrementing the reference count in error cleanup.
Patrick Steinhardt e781a0c5 2016-11-25T15:02:07 graph: flag fields should be declared as unsigned
Patrick Steinhardt 482d1748 2016-11-25T15:01:35 transports: smart: do not redeclare loop counters
Patrick Steinhardt 6cf575b1 2016-11-25T15:01:04 path: remove unused local variable
Patrick Steinhardt 013ecb4f 2016-11-25T15:00:50 revwalk: do not re-declare `commit` variable
Patrick Steinhardt 8468a440 2016-11-25T15:00:20 odb_mempack: mark zero-length array as GIT_FLEX_ARRAY
Patrick Steinhardt ab0cc5a0 2016-11-25T14:58:16 clar: mark `cl_git_thread_check()` as inline The function `cl_git_thread_check()` is defined as static. As the function is defined in a header file which is included by our tests, this can result in warnings for every test file where `cl_git_thread_check` is never used. Fix the issue by marking it as inline instead.
Patrick Steinhardt 34b32053 2016-11-25T15:02:34 Fix potential use of uninitialized values
Edward Thomson 8339c660 2016-12-07T17:44:25 Merge pull request #4020 from novalis/rebase-detached git_rebase_init: correctly handle detached HEAD
Edward Thomson 15769731 2016-12-07T15:01:20 Merge pull request #4014 from bokic/patch-1 Properly pass `wchar *` type to giterr_set
Boris Barbulovski 9af59f5d 2016-12-06T03:08:52 Properly pass `wchar *` type to giterr_set
Edward Thomson 5c18ece3 2016-12-04T15:58:40 Merge pull request #4022 from josharian/patch-1 remote: fix typo in git_fetch_init_options docs
Josh Bleecher Snyder 72cee168 2016-12-02T16:14:47 remote: fix typo in git_fetch_init_options docs
David Turner 4db1fc7e 2016-12-01T23:06:41 git_rebase_init: correctly handle detached HEAD git_rebase_finish relies on head_detached being set, but rebase_init_merge was only setting it when branch->ref_name was unset. But branch->ref_name would be set to "HEAD" in the case of detached HEAD being either implicitly (NULL) or explicitly passed to git_rebase_init.
Elliot Saba 236a690c 2016-11-20T22:46:01 Allow Windows with WinHTTP to use external http-parser
Boris Barbulovski 86364af9 2016-11-20T11:30:45 Properly pass `wchar *` type to giterr_set
Carlos Martín Nieto ae5838f1 2016-11-18T21:01:51 Merge pull request #4010 from libgit2/ethomson/clar_threads Introduce some clar helpers for child threads
Edward Thomson 6367c58c 2016-11-18T18:30:20 tests: handle life without threads
Edward Thomson 6a05c7a0 2016-11-18T07:37:47 threads::refdb tests: use new threaded clar assert
Edward Thomson bbf22f82 2016-11-18T07:34:20 clar: Introduce assertion helpers for threads Don't `cl_git_pass` in a child thread. When the assertion fails, clar will `longjmp` to its error handler, but: > The effect of a call to longjmp() where initialization of the jmp_buf > structure was not performed in the calling thread is undefined. Instead, set up an error context that threads can populate, and the caller can check.
Edward Thomson 99479062 2016-11-18T16:50:34 core::init tests: reverse init/shutdown We want a predictable number of initializations in our multithreaded init test, but we also want to make sure that we have _actually_ initialized `git_libgit2_init` before calling `git_thread_create` (since it now has a sanity check that `git_libgit2_init` has been called). Since `git_thread_create` is internal-only, keep this sanity check. Flip the invocation so that we `git_libgit2_init` before our thread tests and `git_libgit2_shutdown` again after.
Edward Thomson 82f15896 2016-11-18T07:19:22 threads: introduce `git_thread_exit` Introduce `git_thread_exit`, which will allow threads to terminate at an arbitrary time, returning a `void *`. On Windows, this means that we need to store the current `git_thread` in TLS, so that we can set its `return` value when terminating. We cannot simply use `ExitThread`, since Win32 returns `DWORD`s from threads; we return `void *`.
Carlos Martín Nieto 6b0510e5 2016-11-17T15:45:23 Merge pull request #4009 from pranitbauva1997/fix-string-format use `giterr_set_str()` wherever possible
Pranit Bauva 65b78ea3 2016-11-17T01:08:49 use `giterr_set_str()` wherever possible `giterr_set()` is used when it is required to format a string, and since we don't really require it for this case, it is better to stick to `giterr_set_str()`. This also suppresses a warning(-Wformat-security) raised by the compiler. Signed-off-by: Pranit Bauva <pranit.bauva@gmail.com>
Carlos Martín Nieto a6763ff9 2016-11-15T19:04:18 Merge pull request #4007 from libgit2/cmn/bump-v25 Bump version number to v0.25
Carlos Martín Nieto 0cd162be 2016-11-15T16:28:10 Merge pull request #4008 from pks-t/pks/sortedcache-fd-leak sortedcache: plug leaked file descriptor
Patrick Steinhardt 613381fc 2016-11-15T13:33:05 patch_parse: fix memory leak
Patrick Steinhardt 24b2182c 2016-11-15T12:53:53 sortedcache: plug leaked file descriptor
Carlos Martín Nieto 1db3035d 2016-11-15T12:18:49 Merge pull request #3996 from pks-t/pks/curl-lastsocket-deprecation curl_stream: use CURLINFO_ACTIVESOCKET if curl is recent enough
Carlos Martín Nieto 5569778a 2016-11-15T11:15:40 Bump version number to v0.25
Carlos Martín Nieto f5ea9d4a 2016-11-15T11:02:30 Merge pull request #3962 from libgit2/ethomson/issue_template Introduce a GitHub Issue Template
Carlos Martín Nieto 7ebf099d 2016-11-15T10:54:15 Merge pull request #4004 from libgit2/cmn/changelog CHANGELOG: fill in some updates we missed
Patrick Steinhardt 5cbd5260 2016-11-11T11:37:00 curl_stream: use CURLINFO_ACTIVESOCKET if curl is recent enough The `CURLINFO_LASTSOCKET` information has been deprecated since curl version 7.45.0 as it may result in an overflow in the returned socket on certain systems, most importantly on 64 bit Windows. Instead, a new call `CURLINFO_ACTIVESOCKET` has been added which instead returns a `curl_socket_t`, which is always sufficiently long to store a socket. As we need to provide backwards compatibility with curl versions smaller than 7.45.0, alias CURLINFO_ACTIVESOCKET to CURLINFO_LASTSOCKET on platforms without CURLINFO_ACTIVESOCKET.
Edward Thomson 1d683c1d 2016-11-14T19:21:56 Merge pull request #4006 from libgit2/cmn/compress-buf-free Plug a leak in the refs compressor
Edward Thomson 8c984fea 2016-10-13T16:40:43 Introduce a GitHub Issue Template
Carlos Martín Nieto 06de4e75 2016-11-14T14:12:13 CHANGELOG: fill in some updates we missed
Carlos Martín Nieto 21e0fc32 2016-11-14T17:55:49 Plug a leak in the refs compressor
Carlos Martín Nieto a39f18ac 2016-11-14T17:10:43 Merge pull request #3998 from pks-t/pks/repo-discovery Repository discovery starting from files
Edward Thomson df045cef 2016-11-14T12:12:38 Merge pull request #4003 from libgit2/cmn/tree-updater-ordering Use the sorted input in the tree updater