Log

Author Commit Date CI Message
Patrick Steinhardt e5a620de 2015-11-09T17:00:41 tests: add submodule worktree test data Create worktrees for submodule repositories. The worktrees are created for the parent repository (e.g. the one containing submodules) and for the contained child repository.
Patrick Steinhardt bd9f4fd2 2015-11-11T10:54:08 tests: add worktree test data
Edward Thomson b0c3fa36 2017-02-10T16:15:41 Merge pull request #4112 from cbargren/fix/proxy-env-vars Add support for lowercase proxy environment variables
Christopher Bargren 61189a11 2017-02-10T07:59:22 Fixing a code style issue
Edward Thomson 683ff4f3 2017-02-10T11:01:23 Merge pull request #4111 from pks-t/pks/dos-prefix dirname with DOS prefixes
Edward Thomson 2b8163b8 2017-02-10T10:59:27 Merge pull request #4117 from rcjsuen/patch-1 Flag options in git_stash_apply and git_stash_pop as being optional
Edward Thomson 45d55797 2017-02-10T08:57:37 Merge pull request #4119 from libgit2/ethomson/submodule_renames rename detection: don't try to detect submodule renames
Edward Thomson 191474a1 2017-02-09T18:28:19 diff: don't do rename detection on submodules
Edward Thomson 95367366 2017-02-09T16:57:22 merge: don't do rename detection on submodules
Edward Thomson 49806e9b 2017-02-09T16:52:03 merge_trees: introduce test for submodule renames Test that shows that submodules are incorrectly considered in renames, and `git_merge_trees` will fail to lookup the submodule as a blob.
Remy Suen 93e2c744 2017-02-09T19:12:31 Flag optional parameters for apply and pop The options parameter in both git_stash_apply and git_stash_pop can be NULL. They should be flagged as such in the documentation.
Edward Thomson b4bd5e84 2017-02-09T09:27:04 Merge pull request #4104 from cbargren/fix/windows-digest-proxy Fix digest credentials for proxy in windows
Christopher Bargren 2af282d8 2017-02-08T15:01:30 Addressing PR feedback
Christopher Bargren 5f3276c7 2017-02-07T16:33:28 Add support for lowercase proxy environment variables curl supports HTTPS_PROXY in addition to https_proxy (and their http counterparts). This change ensures parity with curl's behavior.
Patrick Steinhardt 3428a523 2017-02-08T12:02:32 tests: repo: assert discovery starting at Win32 roots finishes As of recently, we failed to correctly discover repositories at a Win32 system root. Instead of aborting the upwards-traversal of the file system, we were looping infinitely when traversal started at either a Win32 drive prefix ("C:/") or a network path ("//somehost"). The issue has been fixed, so add a test to catch regressions.
Patrick Steinhardt 9e8d75c7 2017-02-08T11:41:10 path: ensure dirname on Win32 prefix always has a trailing '/' When calling `git_path_dirname_r` on a Win32 prefix, e.g. a drive or network share prefix, we always want to return the trailing '/'. This does not work currently when passing in a path like 'C:', where the '/' would not be appended correctly. Fix this by appending a '/' if we try to normalize a Win32 prefix and there is no trailing '/'.
Patrick Steinhardt 5d59520c 2017-02-07T20:30:11 path: get correct dirname for Windows root Getting the dirname of a filesystem root should return the filesystem root itself. E.g. the dirname of "/" is always "/". On Windows, we emulate this behavior and as such, we should return e.g. "C:/" if calling dirname on "C:/". But we currently fail to do so and instead return ".", as we do not check if we actually have a Windows prefix before stripping off the last directory component. Fix this by calling out to `win32_prefix_length` immediately after stripping trailing slashes, returning early if we have a prefix.
Patrick Steinhardt d8c06070 2017-02-07T20:21:38 path: extract `win32_path_prefix` function Extract code which determines if a path is at a Windows system's root. This incluses drive prefixes (e.g. "C:\") as well as network computer names (e.g. "//computername/").
Edward Thomson be249bca 2017-02-08T10:21:55 Merge pull request #4109 from rcjsuen/patch-1 Flag checkout_opts in git_reset as optional
Christopher Bargren 1e929eb5 2017-02-06T11:00:06 Pass proxy options payload to credentials callback
Chris Bargren fa2dfcf9 2017-02-01T09:28:30 Fix digest credentials for proxy in windows
Remy Suen 3a133652 2017-02-05T07:12:32 Flag checkout_opts in git_reset as optional The check_outs argument can be NULL and should be flagged accordingly in the header file.
Edward Thomson 887c1931 2017-02-04T11:04:30 Merge pull request #4108 from rcjsuen/patch-1 Flag given_opts in git_revert as optional
Remy Suen 21d4a378 2017-02-04T17:24:31 Flag given_opts in git_revert as optional The given_opts argument can actually be NULL and thus should be flagged accordingly in the header file.
Edward Thomson 104a1b0b 2017-02-02T17:21:23 Merge pull request #4105 from pks-t/pks/vector-reverse-overflow Vector reverse overflow
Patrick Steinhardt f47db3c7 2017-02-02T16:02:57 vector: do not reverse a vector if it is empty The code reversing a vector initially determines the rear-pointer by simply subtracting 1 from the vector's length. Obviously, this fails if the vector is empty, in which case we have an integer overflow. Fix the issue by returning early if the vector is empty.
Adam Niedzielski 390431c3 2017-02-01T17:31:31 revwal: add failing test for walking with topo-sort
Edward Thomson 9ba610a1 2017-02-02T13:31:33 Merge pull request #4096 from mplough/master Update docs for git_oid_fromstrn and p
Matthew Plough 921493cc 2017-01-27T14:37:16 Update docs for git_oid_fromstrn and p
Edward Thomson dad3c319 2017-01-27T17:56:52 Merge pull request #4095 from mplough/master Fix uninitialized variable warning
Matthew Plough d0c418c0 2017-01-27T12:49:48 Fix uninitialized variable warning Fix the following warning emitted by clang: [ 16%] Building C object CMakeFiles/libgit2_clar.dir/src/submodule.c.o /Users/mplough/devel/external/libgit2/src/submodule.c:408:6: warning: variable 'i' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized] if ((error = load_submodule_names(names, cfg))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/mplough/devel/external/libgit2/src/submodule.c:448:20: note: uninitialized use occurs here git_iterator_free(i); ^ /Users/mplough/devel/external/libgit2/src/submodule.c:408:2: note: remove the 'if' if its condition is always false if ((error = load_submodule_names(names, cfg))) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /Users/mplough/devel/external/libgit2/src/submodule.c:404:17: note: initialize the variable 'i' to silence this warning git_iterator *i; ^ = NULL 1 warning generated.
Carlos Martín Nieto 8df1cfc9 2017-01-24T21:26:41 Merge pull request #4086 from libgit2/ethomson/fixes WIP: some coverity & compiler warning fixes
Carlos Martín Nieto 9b51cc82 2017-01-24T21:10:46 Merge pull request #4050 from ethomson/ethomson/winhttp_errmsgs WinHTTP: set proper error messages when SSL fails
Edward Thomson 1f813cf2 2017-01-23T17:32:13 checkout::tree test: cleanup memory leak
Edward Thomson 7f66a70e 2017-01-23T23:00:00 attr_cache_remove: don't remove given file If `attr_cache_lookup_entry` fails to find the given file, make sure that we do not try to free the given file.
Edward Thomson a0d38479 2017-01-22T01:42:45 mac: on 32 bit, use `__builtin_umull_overflow`
Edward Thomson 60c2bf47 2017-01-22T00:58:41 submodule: only examine idx & head given a config
Edward Thomson 0fbff82b 2017-01-22T00:30:02 submodule: don't double free during load failure When we fail to load submodules, don't free the list; it is later freed unconditionally.
Edward Thomson 11968073 2017-01-23T13:29:14 Merge pull request #4087 from tiennou/warnings Fix a few recent warnings
Etienne Samson e2b3dc16 2017-01-23T13:29:47 variable 'i' is used uninitialized whenever 'if' condition is true
Etienne Samson 7414acf5 2017-01-23T12:28:02 parameter 'id' not found in the function declaration
Edward Thomson 185fe9c1 2017-01-21T23:58:41 Merge pull request #4051 from tiennou/clang-analyzer-1 Clang analyzer run
Edward Thomson 048c5ea7 2017-01-21T23:55:21 Merge pull request #4053 from chescock/extend-packfile-by-pages Extend packfile in increments of page_size.
Edward Thomson 8d3b39a6 2017-01-21T23:50:38 Merge branch 'pr/3912'
Edward Thomson 28d0ba0b 2017-01-21T23:45:23 symbolic ref target validation: fixups Fixups requested in #3912.
Edward Thomson 1910a04a 2016-12-30T12:42:42 winhttp: set proper cert failure error messages Set up a WinHTTP status callback; inspect the WinHTTP status for WINHTTP_CALLBACK_STATUS_SECURE_FAILURE, and convert the status code to a useful message for callers.
Edward Thomson 0418d3b7 2017-01-21T23:11:13 Merge pull request #4078 from pks-t/pks/example-cleanup Fix general example memory leaks
Edward Thomson 44e8af8f 2017-01-21T22:51:50 Merge pull request #3892 from mitesch/shared_buffer Use a shared buffer in calls of git_treebuilder_write to avoid heap contention
Edward Thomson 3b4eb107 2017-01-21T22:40:37 CHANGELOG: move `git_submodule_update_option` changes The changes to `git_submodule_update_option` are now landing in v.Next.
Edward Thomson 9e78b727 2017-01-21T22:39:59 Merge branch 'master' into pr/3938
Edward Thomson 176f5552 2017-01-21T22:16:28 Merge pull request #4085 from libgit2/ethomson/packfile_close indexer: introduce `git_packfile_close`
Edward Thomson 87b7a705 2017-01-21T15:44:57 indexer: avoid warning about `idx->pack` It must be non-NULL to have a valid `git_indexer`.
Edward Thomson bf339ab0 2017-01-21T14:51:31 indexer: introduce `git_packfile_close` Encapsulation!
Edward Thomson 98f53872 2017-01-21T18:57:28 Merge pull request #4016 from novalis/submodule-optimization Submodule optimization
Edward Thomson 52949c80 2017-01-21T18:30:12 Merge branch 'pr/4060'
Edward Thomson d030bba9 2017-01-21T17:15:33 indexer: only delete temp file if it was unused Only try to `unlink` our temp file when we know that we didn't copy it into its permanent location.
Brock Peabody 673dff88 2016-11-23T18:32:55 Skip submodule head/index update when caching. `git_submodule_status` is very slow, bottlenecked on `git_repository_head_tree`, which it uses through `submodule_update_head`. If the user has requested submodule caching, assume that they want this status cached too and skip it. Signed-off-by: David Turner <dturner@twosigma.com>
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
lhchavez f5586f5c 2017-01-14T16:37:00 Addressed review feedback
Edward Thomson 07bb8078 2017-01-14T16:01:53 CHANGELOG: update `GIT_MERGE_OPTIONS_INIT` changes
Etienne Samson 49be45a1 2016-12-26T22:15:31 pack: report revwalk error
Etienne Samson b0014063 2016-12-26T22:13:35 patch: memory leak of patch.base.diff_opts.new|old_prefix
Etienne Samson 8a349bf2 2016-12-26T14:47:55 ignore: there must be a repository Otherwise we'll NULL-dereference in git_attr_cache__init
Carlos Martín Nieto a6d833a2 2017-01-13T17:05:58 Merge pull request #4049 from libgit2/ethomson/error_msgs giterr_set: consistent error messages
Patrick Steinhardt f9ea8c6a 2017-01-12T22:02:14 examples: general: fix memory leaks
Patrick Steinhardt ed2b1c7e 2017-01-12T22:01:45 examples: general: display config only if it was found
Patrick Steinhardt 5aa10107 2017-01-12T22:01:23 examples: general: narrow down scope of loop variables
Patrick Steinhardt 8572e225 2017-01-12T22:00:53 examples: general: clean up committer/author variables
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
lhchavez 96df833b 2017-01-03T19:15:09 Close the file before unlinking I forgot that Windows chokes while trying to delete open files.
lhchavez a7ff6e5e 2017-01-03T18:24:51 Fix the memory leak
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
lhchavez def644e4 2017-01-01T17:35:29 Add a test
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.
lhchavez db535d0a 2017-01-01T12:45:02 Delete temporary packfile in indexer This change deletes the temporary packfile that the indexer creates to avoid littering the pack/ directory with garbage.
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).
Chris Hescock c7a1535f 2016-12-29T11:47:52 Extend packfile in increments of page_size. This improves performance by reducing the number of I/O operations.