|
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>
|
|
ca05857e
|
2016-11-23T18:26:19
|
|
Fix formatting
Signed-off-by: David Turner <dturner@twosigma.com>
|
|
df4dfaad
|
2017-01-16T12:29:52
|
|
Merge pull request #4055 from ethomson/ethomson/ntlm
WinHTTP: support best auth mechanism
|
|
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.
|
|
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.
|
|
2854e619
|
2017-01-14T17:12:23
|
|
Merge pull request #4061 from libgit2/ethomson/merge_opts
merge: set default rename threshold
|
|
07bb8078
|
2017-01-14T16:01:53
|
|
CHANGELOG: update `GIT_MERGE_OPTIONS_INIT` changes
|
|
a6d833a2
|
2017-01-13T17:05:58
|
|
Merge pull request #4049 from libgit2/ethomson/error_msgs
giterr_set: consistent error messages
|
|
ffe259d9
|
2017-01-11T11:52:06
|
|
Merge pull request #4074 from fcharlie/master
fix examples/network/clone.c: heap-buffer-overflow
|
|
ee89941f
|
2017-01-09T20:59:43
|
|
Merge remote-tracking branch 'upstream/maint/v0.25'
|
|
2fcb8705
|
2017-01-09T20:26:45
|
|
Merge pull request #4076 from libgit2/cmn/sec-update-25
security updates for v0.25
|
|
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.
|
|
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.
|
|
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
|
|
a5cf255b
|
2017-01-06T17:15:53
|
|
Bump version to 0.25.1
|
|
6850b516
|
2017-01-06T17:12:16
|
|
Merge branch '25_smartpktparse' into maint/v0.25
|
|
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.
|
|
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`.
|
|
ab8a0fdb
|
2017-01-06T17:10:49
|
|
Merge branch '25_certcheckcb' into maint/v0.25
|
|
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.
|
|
9a64e62f
|
2016-12-21T21:24:33
|
|
http: check certificate validity before clobbering the error variable
|
|
5afd0f9b
|
2017-01-06T12:33:17
|
|
Merge pull request #4065 from simonbyrne/sb/changelog
Mention field addition in breaking API changes
|
|
d8f984bc
|
2017-01-03T10:54:24
|
|
move git_merge_options changes to correct location
|
|
31c78299
|
2017-01-03T10:11:52
|
|
mention field addition in breaking API changes
|
|
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.
|
|
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
|
|
e56e4c76
|
2016-12-30T17:59:47
|
|
CMakeLists: Move `http-parser` block down by `zlib`, update error message
|
|
c9b99689
|
2016-12-30T19:14:02
|
|
Merge pull request #4052 from dglsswnsn/master
Fix issue #4046 Seg fault in config_files()
|
|
42ad85ef
|
2016-12-30T16:35:24
|
|
Merge pull request #4043 from fudanchii/fudanchii/openbsd
Fix BIO_* functions method linking when compiled with libressl (OpenBSD).
|
|
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).
|
|
832278bf
|
2016-12-29T07:43:03
|
|
Fix issue #4046 Seg fault in config_files()
|
|
8f0d5cde
|
2016-12-29T12:55:49
|
|
tests: update error message checking
|
|
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
|
|
238b8ccd
|
2016-12-29T11:07:37
|
|
Merge pull request #4048 from jacquesg/rebase-error-check
rebase: check the result code of rebase_init_merge
|
|
f928c69a
|
2016-12-29T12:54:26
|
|
rebase: check the result code of rebase_init_merge
|
|
7829b411
|
2016-12-27T12:26:44
|
|
Merge pull request #4044 from jacquesg/mempack-version
mempack: set the odb backend version
|
|
6a8127d7
|
2016-12-25T22:13:48
|
|
mempack: set the odb backend version
|
|
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
|
|
75db289a
|
2016-12-20T19:14:20
|
|
Merge pull request #3980 from tiennou/doc-fixes
Documentation fixes
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
329ce043
|
2016-12-20T12:14:22
|
|
Merge pull request #4037 from libgit2/cmn/goals
README: be more explicit in the goals and scope
|
|
b0b850bf
|
2016-12-19T18:04:20
|
|
Merge pull request #4038 from lucasderraugh/patch-1
Gift deprecated in favor of SwiftGit2
|
|
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
|
|
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
|
|
87faeaec
|
2016-12-19T09:09:34
|
|
Gift deprecated in favor of SwiftGit2
|
|
34901679
|
2016-12-19T16:25:01
|
|
Merge pull request #4033 from andhe/master
Fix off-by-one problems in git_signature__parse
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
c655def1
|
2016-12-17T01:12:49
|
|
Merge pull request #4031 from libgit2/cmn/plug-test-leak
rebase: plug a leak in the tests
|
|
f7dcd58c
|
2016-12-17T00:55:06
|
|
rebase: plug a leak in the tests
|
|
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.
|
|
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
|
|
9d5f12ff
|
2016-12-12T22:43:11
|
|
Merge pull request #4018 from pks-t/pks/various-fixes
Various fixes
|
|
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.
|
|
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.
|
|
e781a0c5
|
2016-11-25T15:02:07
|
|
graph: flag fields should be declared as unsigned
|
|
482d1748
|
2016-11-25T15:01:35
|
|
transports: smart: do not redeclare loop counters
|
|
6cf575b1
|
2016-11-25T15:01:04
|
|
path: remove unused local variable
|
|
013ecb4f
|
2016-11-25T15:00:50
|
|
revwalk: do not re-declare `commit` variable
|
|
8468a440
|
2016-11-25T15:00:20
|
|
odb_mempack: mark zero-length array as GIT_FLEX_ARRAY
|
|
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.
|
|
34b32053
|
2016-11-25T15:02:34
|
|
Fix potential use of uninitialized values
|
|
8339c660
|
2016-12-07T17:44:25
|
|
Merge pull request #4020 from novalis/rebase-detached
git_rebase_init: correctly handle detached HEAD
|
|
15769731
|
2016-12-07T15:01:20
|
|
Merge pull request #4014 from bokic/patch-1
Properly pass `wchar *` type to giterr_set
|
|
9af59f5d
|
2016-12-06T03:08:52
|
|
Properly pass `wchar *` type to giterr_set
|
|
5c18ece3
|
2016-12-04T15:58:40
|
|
Merge pull request #4022 from josharian/patch-1
remote: fix typo in git_fetch_init_options docs
|
|
72cee168
|
2016-12-02T16:14:47
|
|
remote: fix typo in git_fetch_init_options docs
|
|
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.
|
|
236a690c
|
2016-11-20T22:46:01
|
|
Allow Windows with WinHTTP to use external http-parser
|
|
86364af9
|
2016-11-20T11:30:45
|
|
Properly pass `wchar *` type to giterr_set
|
|
ae5838f1
|
2016-11-18T21:01:51
|
|
Merge pull request #4010 from libgit2/ethomson/clar_threads
Introduce some clar helpers for child threads
|
|
6367c58c
|
2016-11-18T18:30:20
|
|
tests: handle life without threads
|
|
6a05c7a0
|
2016-11-18T07:37:47
|
|
threads::refdb tests: use new threaded clar assert
|
|
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.
|
|
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.
|
|
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 *`.
|
|
6b0510e5
|
2016-11-17T15:45:23
|
|
Merge pull request #4009 from pranitbauva1997/fix-string-format
use `giterr_set_str()` wherever possible
|
|
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>
|
|
a6763ff9
|
2016-11-15T19:04:18
|
|
Merge pull request #4007 from libgit2/cmn/bump-v25
Bump version number to v0.25
|
|
0cd162be
|
2016-11-15T16:28:10
|
|
Merge pull request #4008 from pks-t/pks/sortedcache-fd-leak
sortedcache: plug leaked file descriptor
|
|
613381fc
|
2016-11-15T13:33:05
|
|
patch_parse: fix memory leak
|
|
24b2182c
|
2016-11-15T12:53:53
|
|
sortedcache: plug leaked file descriptor
|
|
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
|
|
5569778a
|
2016-11-15T11:15:40
|
|
Bump version number to v0.25
|
|
f5ea9d4a
|
2016-11-15T11:02:30
|
|
Merge pull request #3962 from libgit2/ethomson/issue_template
Introduce a GitHub Issue Template
|
|
7ebf099d
|
2016-11-15T10:54:15
|
|
Merge pull request #4004 from libgit2/cmn/changelog
CHANGELOG: fill in some updates we missed
|
|
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.
|
|
1d683c1d
|
2016-11-14T19:21:56
|
|
Merge pull request #4006 from libgit2/cmn/compress-buf-free
Plug a leak in the refs compressor
|
|
8c984fea
|
2016-10-13T16:40:43
|
|
Introduce a GitHub Issue Template
|
|
06de4e75
|
2016-11-14T14:12:13
|
|
CHANGELOG: fill in some updates we missed
|
|
21e0fc32
|
2016-11-14T17:55:49
|
|
Plug a leak in the refs compressor
|
|
a39f18ac
|
2016-11-14T17:10:43
|
|
Merge pull request #3998 from pks-t/pks/repo-discovery
Repository discovery starting from files
|
|
df045cef
|
2016-11-14T12:12:38
|
|
Merge pull request #4003 from libgit2/cmn/tree-updater-ordering
Use the sorted input in the tree updater
|