rugged 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +1 -0
- data/README.md +3 -3
- data/ext/rugged/rugged.c +7 -4
- data/ext/rugged/rugged_commit.c +1 -1
- data/ext/rugged/rugged_config.c +1 -1
- data/ext/rugged/rugged_object.c +1 -1
- data/ext/rugged/rugged_remote.c +32 -2
- data/ext/rugged/rugged_repo.c +13 -3
- data/lib/rugged/commit.rb +17 -4
- data/lib/rugged/repository.rb +7 -8
- data/lib/rugged/submodule_collection.rb +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/CMakeLists.txt +41 -74
- data/vendor/libgit2/COPYING +109 -1
- data/vendor/libgit2/cmake/{Modules/AddCFlagIfSupported.cmake → AddCFlagIfSupported.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/EnableWarnings.cmake → EnableWarnings.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindCoreFoundation.cmake → FindCoreFoundation.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindGSSAPI.cmake → FindGSSAPI.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindGSSFramework.cmake → FindGSSFramework.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindHTTP_Parser.cmake → FindHTTP_Parser.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindIconv.cmake → FindIconv.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPCRE.cmake → FindPCRE.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPCRE2.cmake → FindPCRE2.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindPkgLibraries.cmake → FindPkgLibraries.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindSecurity.cmake → FindSecurity.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/FindStatNsec.cmake → FindStatNsec.cmake} +0 -0
- data/vendor/libgit2/cmake/Findfutimens.cmake +14 -0
- data/vendor/libgit2/cmake/{Modules/FindmbedTLS.cmake → FindmbedTLS.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/IdeSplitSources.cmake → IdeSplitSources.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/PkgBuildConfig.cmake → PkgBuildConfig.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/SanitizeBool.cmake → SanitizeBool.cmake} +0 -0
- data/vendor/libgit2/cmake/{Modules/SelectGSSAPI.cmake → SelectGSSAPI.cmake} +18 -26
- data/vendor/libgit2/cmake/{Modules/SelectHTTPSBackend.cmake → SelectHTTPSBackend.cmake} +29 -32
- data/vendor/libgit2/cmake/{Modules/SelectHashes.cmake → SelectHashes.cmake} +21 -28
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +101 -0
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +4 -3
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +24 -10
- data/vendor/libgit2/deps/ntlmclient/compat.h +0 -27
- data/vendor/libgit2/deps/ntlmclient/crypt.h +14 -9
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +20 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +3 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +37 -36
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +4 -3
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +178 -51
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +74 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +164 -135
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +13 -9
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +16 -3
- data/vendor/libgit2/deps/ntlmclient/unicode.h +10 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +16 -27
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.h +20 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +28 -52
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.h +22 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +15 -1
- data/vendor/libgit2/deps/ntlmclient/util.h +2 -1
- data/vendor/libgit2/deps/pcre/LICENCE +93 -0
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +29 -17
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +4 -4
- data/vendor/libgit2/deps/pcre/pcreposix.c +2 -3
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -5
- data/vendor/libgit2/deps/zlib/deflate.c +1 -0
- data/vendor/libgit2/include/git2/annotated_commit.h +1 -1
- data/vendor/libgit2/include/git2/apply.h +2 -0
- data/vendor/libgit2/include/git2/attr.h +89 -0
- data/vendor/libgit2/include/git2/blame.h +95 -42
- data/vendor/libgit2/include/git2/blob.h +31 -3
- data/vendor/libgit2/include/git2/branch.h +25 -0
- data/vendor/libgit2/include/git2/cert.h +42 -5
- data/vendor/libgit2/include/git2/checkout.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +35 -19
- data/vendor/libgit2/include/git2/common.h +33 -6
- data/vendor/libgit2/include/git2/config.h +1 -1
- data/vendor/libgit2/include/git2/deprecated.h +248 -8
- data/vendor/libgit2/include/git2/diff.h +35 -20
- data/vendor/libgit2/include/git2/errors.h +8 -7
- data/vendor/libgit2/include/git2/filter.h +57 -17
- data/vendor/libgit2/include/git2/graph.h +20 -2
- data/vendor/libgit2/include/git2/index.h +4 -5
- data/vendor/libgit2/include/git2/indexer.h +2 -1
- data/vendor/libgit2/include/git2/odb.h +44 -20
- data/vendor/libgit2/include/git2/pack.h +1 -1
- data/vendor/libgit2/include/git2/patch.h +8 -0
- data/vendor/libgit2/include/git2/rebase.h +25 -1
- data/vendor/libgit2/include/git2/refs.h +9 -5
- data/vendor/libgit2/include/git2/remote.h +59 -6
- data/vendor/libgit2/include/git2/repository.h +95 -52
- data/vendor/libgit2/include/git2/revparse.h +5 -5
- data/vendor/libgit2/include/git2/status.h +115 -59
- data/vendor/libgit2/include/git2/strarray.h +6 -10
- data/vendor/libgit2/include/git2/submodule.h +9 -0
- data/vendor/libgit2/include/git2/sys/commit_graph.h +174 -0
- data/vendor/libgit2/include/git2/sys/filter.h +49 -28
- data/vendor/libgit2/include/git2/sys/midx.h +74 -0
- data/vendor/libgit2/include/git2/sys/odb_backend.h +7 -0
- data/vendor/libgit2/include/git2/sys/transport.h +1 -0
- data/vendor/libgit2/include/git2/tag.h +12 -0
- data/vendor/libgit2/include/git2/transport.h +1 -1
- data/vendor/libgit2/include/git2/tree.h +2 -14
- data/vendor/libgit2/include/git2/types.h +9 -0
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +77 -44
- data/vendor/libgit2/src/alloc.c +21 -8
- data/vendor/libgit2/src/allocators/failalloc.c +92 -0
- data/vendor/libgit2/src/allocators/failalloc.h +23 -0
- data/vendor/libgit2/src/allocators/stdalloc.c +41 -10
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +118 -0
- data/vendor/libgit2/src/allocators/{win32_crtdbg.h → win32_leakcheck.h} +3 -3
- data/vendor/libgit2/src/annotated_commit.c +21 -9
- data/vendor/libgit2/src/apply.c +21 -8
- data/vendor/libgit2/src/array.h +11 -11
- data/vendor/libgit2/src/assert_safe.h +58 -0
- data/vendor/libgit2/src/attr.c +181 -74
- data/vendor/libgit2/src/attr_file.c +92 -42
- data/vendor/libgit2/src/attr_file.h +32 -11
- data/vendor/libgit2/src/attrcache.c +44 -40
- data/vendor/libgit2/src/attrcache.h +4 -5
- data/vendor/libgit2/src/blame.c +28 -15
- data/vendor/libgit2/src/blame_git.c +6 -3
- data/vendor/libgit2/src/blob.c +46 -24
- data/vendor/libgit2/src/branch.c +87 -37
- data/vendor/libgit2/src/buffer.c +339 -27
- data/vendor/libgit2/src/buffer.h +153 -2
- data/vendor/libgit2/src/cache.c +3 -24
- data/vendor/libgit2/src/cache.h +7 -7
- data/vendor/libgit2/src/cc-compat.h +10 -2
- data/vendor/libgit2/src/checkout.c +97 -98
- data/vendor/libgit2/src/cherrypick.c +8 -2
- data/vendor/libgit2/src/clone.c +104 -29
- data/vendor/libgit2/src/commit.c +41 -28
- data/vendor/libgit2/src/commit_graph.c +1209 -0
- data/vendor/libgit2/src/commit_graph.h +162 -0
- data/vendor/libgit2/src/commit_list.c +46 -0
- data/vendor/libgit2/src/commit_list.h +2 -0
- data/vendor/libgit2/src/common.h +26 -2
- data/vendor/libgit2/src/config.c +40 -22
- data/vendor/libgit2/src/config_cache.c +9 -4
- data/vendor/libgit2/src/config_entries.c +35 -27
- data/vendor/libgit2/src/config_file.c +25 -8
- data/vendor/libgit2/src/config_parse.c +5 -7
- data/vendor/libgit2/src/config_snapshot.c +2 -1
- data/vendor/libgit2/src/crlf.c +16 -6
- data/vendor/libgit2/src/date.c +4 -3
- data/vendor/libgit2/src/delta.c +1 -1
- data/vendor/libgit2/src/describe.c +11 -4
- data/vendor/libgit2/src/diff.c +23 -19
- data/vendor/libgit2/src/diff_driver.c +21 -17
- data/vendor/libgit2/src/diff_file.c +5 -7
- data/vendor/libgit2/src/diff_generate.c +56 -28
- data/vendor/libgit2/src/diff_parse.c +2 -3
- data/vendor/libgit2/src/diff_print.c +81 -65
- data/vendor/libgit2/src/diff_stats.c +19 -16
- data/vendor/libgit2/src/diff_tform.c +13 -13
- data/vendor/libgit2/src/diff_xdiff.c +4 -2
- data/vendor/libgit2/src/diff_xdiff.h +1 -1
- data/vendor/libgit2/src/errors.c +26 -19
- data/vendor/libgit2/src/features.h.in +5 -1
- data/vendor/libgit2/src/fetch.c +7 -2
- data/vendor/libgit2/src/fetchhead.c +8 -4
- data/vendor/libgit2/src/filebuf.c +9 -7
- data/vendor/libgit2/src/filter.c +209 -113
- data/vendor/libgit2/src/filter.h +24 -5
- data/vendor/libgit2/src/futils.c +8 -8
- data/vendor/libgit2/src/futils.h +4 -4
- data/vendor/libgit2/src/graph.c +64 -9
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +3 -3
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +3 -3
- data/vendor/libgit2/src/hash/sha1/generic.h +1 -1
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +12 -12
- data/vendor/libgit2/src/hash/sha1/openssl.c +3 -3
- data/vendor/libgit2/src/hash/sha1/sha1dc/sha1.c +0 -2
- data/vendor/libgit2/src/hash/sha1/win32.c +15 -11
- data/vendor/libgit2/src/hash.c +16 -13
- data/vendor/libgit2/src/hash.h +1 -1
- data/vendor/libgit2/src/hashsig.c +23 -10
- data/vendor/libgit2/src/ident.c +13 -3
- data/vendor/libgit2/src/idxmap.c +0 -22
- data/vendor/libgit2/src/ignore.c +35 -19
- data/vendor/libgit2/src/index.c +126 -84
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +60 -36
- data/vendor/libgit2/src/integer.h +79 -2
- data/vendor/libgit2/src/iterator.c +40 -28
- data/vendor/libgit2/src/iterator.h +1 -1
- data/vendor/libgit2/src/khash.h +2 -11
- data/vendor/libgit2/src/{settings.c → libgit2.c} +125 -49
- data/vendor/libgit2/src/libgit2.h +15 -0
- data/vendor/libgit2/src/mailmap.c +23 -10
- data/vendor/libgit2/src/map.h +3 -3
- data/vendor/libgit2/src/merge.c +108 -46
- data/vendor/libgit2/src/merge.h +2 -1
- data/vendor/libgit2/src/merge_driver.c +19 -13
- data/vendor/libgit2/src/merge_file.c +15 -9
- data/vendor/libgit2/src/message.c +3 -1
- data/vendor/libgit2/src/midx.c +879 -0
- data/vendor/libgit2/src/midx.h +110 -0
- data/vendor/libgit2/src/mwindow.c +214 -95
- data/vendor/libgit2/src/mwindow.h +3 -3
- data/vendor/libgit2/src/net.c +133 -4
- data/vendor/libgit2/src/net.h +16 -2
- data/vendor/libgit2/src/netops.c +6 -4
- data/vendor/libgit2/src/netops.h +2 -2
- data/vendor/libgit2/src/notes.c +10 -10
- data/vendor/libgit2/src/object.c +24 -15
- data/vendor/libgit2/src/odb.c +298 -57
- data/vendor/libgit2/src/odb.h +16 -2
- data/vendor/libgit2/src/odb_loose.c +31 -21
- data/vendor/libgit2/src/odb_mempack.c +3 -1
- data/vendor/libgit2/src/odb_pack.c +391 -114
- data/vendor/libgit2/src/oid.c +7 -4
- data/vendor/libgit2/src/pack-objects.c +83 -69
- data/vendor/libgit2/src/pack.c +383 -150
- data/vendor/libgit2/src/pack.h +44 -9
- data/vendor/libgit2/src/patch.c +14 -7
- data/vendor/libgit2/src/patch_generate.c +3 -5
- data/vendor/libgit2/src/patch_parse.c +6 -3
- data/vendor/libgit2/src/path.c +102 -57
- data/vendor/libgit2/src/path.h +79 -6
- data/vendor/libgit2/src/pathspec.c +12 -11
- data/vendor/libgit2/src/pool.c +34 -22
- data/vendor/libgit2/src/pool.h +9 -1
- data/vendor/libgit2/src/posix.c +43 -12
- data/vendor/libgit2/src/posix.h +9 -0
- data/vendor/libgit2/src/proxy.c +2 -0
- data/vendor/libgit2/src/push.c +2 -0
- data/vendor/libgit2/src/reader.c +10 -6
- data/vendor/libgit2/src/rebase.c +95 -49
- data/vendor/libgit2/src/refdb.c +165 -13
- data/vendor/libgit2/src/refdb.h +69 -0
- data/vendor/libgit2/src/refdb_fs.c +144 -152
- data/vendor/libgit2/src/reflog.c +21 -20
- data/vendor/libgit2/src/refs.c +151 -231
- data/vendor/libgit2/src/refs.h +2 -20
- data/vendor/libgit2/src/refspec.c +80 -44
- data/vendor/libgit2/src/regexp.c +2 -2
- data/vendor/libgit2/src/remote.c +312 -121
- data/vendor/libgit2/src/remote.h +2 -1
- data/vendor/libgit2/src/repository.c +351 -189
- data/vendor/libgit2/src/repository.h +23 -29
- data/vendor/libgit2/src/reset.c +7 -6
- data/vendor/libgit2/src/revert.c +8 -2
- data/vendor/libgit2/src/revparse.c +19 -13
- data/vendor/libgit2/src/revwalk.c +35 -20
- data/vendor/libgit2/src/runtime.c +162 -0
- data/vendor/libgit2/src/runtime.h +62 -0
- data/vendor/libgit2/src/{refdb_fs.h → settings.h} +3 -11
- data/vendor/libgit2/src/signature.c +6 -5
- data/vendor/libgit2/src/sortedcache.c +2 -3
- data/vendor/libgit2/src/sortedcache.h +10 -8
- data/vendor/libgit2/src/stash.c +7 -3
- data/vendor/libgit2/src/status.c +9 -4
- data/vendor/libgit2/src/strarray.c +64 -0
- data/vendor/libgit2/src/streams/mbedtls.c +14 -17
- data/vendor/libgit2/src/streams/mbedtls.h +1 -1
- data/vendor/libgit2/src/streams/openssl.c +113 -207
- data/vendor/libgit2/src/streams/openssl.h +9 -1
- data/vendor/libgit2/src/streams/openssl_dynamic.c +309 -0
- data/vendor/libgit2/src/streams/openssl_dynamic.h +348 -0
- data/vendor/libgit2/src/streams/openssl_legacy.c +203 -0
- data/vendor/libgit2/src/streams/openssl_legacy.h +63 -0
- data/vendor/libgit2/src/streams/registry.c +10 -9
- data/vendor/libgit2/src/streams/socket.c +6 -2
- data/vendor/libgit2/src/streams/stransport.c +6 -3
- data/vendor/libgit2/src/streams/tls.c +5 -3
- data/vendor/libgit2/src/submodule.c +134 -66
- data/vendor/libgit2/src/submodule.h +9 -9
- data/vendor/libgit2/src/sysdir.c +8 -26
- data/vendor/libgit2/src/sysdir.h +0 -11
- data/vendor/libgit2/src/tag.c +49 -11
- data/vendor/libgit2/src/thread.c +140 -0
- data/vendor/libgit2/src/thread.h +479 -0
- data/vendor/libgit2/src/threadstate.c +83 -0
- data/vendor/libgit2/src/threadstate.h +24 -0
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +17 -13
- data/vendor/libgit2/src/transaction.c +21 -9
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +1 -1
- data/vendor/libgit2/src/transports/auth_negotiate.c +11 -4
- data/vendor/libgit2/src/transports/auth_ntlm.c +10 -6
- data/vendor/libgit2/src/transports/credential.c +17 -7
- data/vendor/libgit2/src/transports/credential_helpers.c +2 -0
- data/vendor/libgit2/src/transports/git.c +1 -3
- data/vendor/libgit2/src/transports/http.c +19 -17
- data/vendor/libgit2/src/transports/http.h +1 -0
- data/vendor/libgit2/src/transports/httpclient.c +84 -42
- data/vendor/libgit2/src/transports/httpclient.h +1 -1
- data/vendor/libgit2/src/transports/local.c +5 -5
- data/vendor/libgit2/src/transports/smart.c +14 -9
- data/vendor/libgit2/src/transports/smart.h +1 -1
- data/vendor/libgit2/src/transports/smart_protocol.c +11 -5
- data/vendor/libgit2/src/transports/ssh.c +51 -17
- data/vendor/libgit2/src/transports/winhttp.c +156 -88
- data/vendor/libgit2/src/tree.c +100 -77
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/tsort.c +0 -2
- data/vendor/libgit2/src/unix/map.c +3 -1
- data/vendor/libgit2/src/unix/posix.h +16 -1
- data/vendor/libgit2/src/unix/pthread.h +2 -1
- data/vendor/libgit2/src/utf8.c +150 -0
- data/vendor/libgit2/src/utf8.h +52 -0
- data/vendor/libgit2/src/util.c +74 -183
- data/vendor/libgit2/src/util.h +33 -39
- data/vendor/libgit2/src/vector.c +23 -19
- data/vendor/libgit2/src/vector.h +4 -2
- data/vendor/libgit2/src/win32/findfile.c +4 -2
- data/vendor/libgit2/src/win32/git2.rc +18 -3
- data/vendor/libgit2/src/win32/map.c +1 -1
- data/vendor/libgit2/src/win32/msvc-compat.h +9 -1
- data/vendor/libgit2/src/win32/path_w32.c +23 -25
- data/vendor/libgit2/src/win32/path_w32.h +0 -1
- data/vendor/libgit2/src/win32/posix_w32.c +77 -1
- data/vendor/libgit2/src/win32/precompiled.h +0 -1
- data/vendor/libgit2/src/win32/reparse.h +4 -4
- data/vendor/libgit2/src/win32/thread.c +24 -15
- data/vendor/libgit2/src/win32/thread.h +1 -1
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -3
- data/vendor/libgit2/src/win32/w32_common.h +18 -9
- data/vendor/libgit2/src/win32/{w32_crtdbg_stacktrace.c → w32_leakcheck.c} +269 -33
- data/vendor/libgit2/src/win32/w32_leakcheck.h +222 -0
- data/vendor/libgit2/src/win32/w32_util.h +6 -6
- data/vendor/libgit2/src/worktree.c +37 -15
- data/vendor/libgit2/src/zstream.c +1 -1
- metadata +56 -38
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +0 -29
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +0 -96
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/buf_text.c +0 -316
- data/vendor/libgit2/src/buf_text.h +0 -122
- data/vendor/libgit2/src/global.c +0 -361
- data/vendor/libgit2/src/global.h +0 -41
- data/vendor/libgit2/src/thread-utils.c +0 -58
- data/vendor/libgit2/src/thread-utils.h +0 -246
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -127
- data/vendor/libgit2/src/win32/w32_stack.c +0 -188
- data/vendor/libgit2/src/win32/w32_stack.h +0 -140
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#include "threadstate.h"
|
|
9
|
+
#include "runtime.h"
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Handle the thread-local state
|
|
13
|
+
*
|
|
14
|
+
* `git_threadstate_global_init` will be called as part
|
|
15
|
+
* of `git_libgit2_init` (which itself must be called
|
|
16
|
+
* before calling any other function in the library).
|
|
17
|
+
*
|
|
18
|
+
* This function allocates a TLS index to store the per-
|
|
19
|
+
* thread state.
|
|
20
|
+
*
|
|
21
|
+
* Any internal method that requires thread-local state
|
|
22
|
+
* will then call `git_threadstate_get()` which returns a
|
|
23
|
+
* pointer to the thread-local state structure; this
|
|
24
|
+
* structure is lazily allocated on each thread.
|
|
25
|
+
*
|
|
26
|
+
* This mechanism will register a shutdown handler
|
|
27
|
+
* (`git_threadstate_global_shutdown`) which will free the
|
|
28
|
+
* TLS index. This shutdown handler will be called by
|
|
29
|
+
* `git_libgit2_shutdown`.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
static git_tlsdata_key tls_key;
|
|
33
|
+
|
|
34
|
+
static void threadstate_dispose(git_threadstate *threadstate)
|
|
35
|
+
{
|
|
36
|
+
if (!threadstate)
|
|
37
|
+
return;
|
|
38
|
+
|
|
39
|
+
git__free(threadstate->error_t.message);
|
|
40
|
+
threadstate->error_t.message = NULL;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
static void GIT_SYSTEM_CALL threadstate_free(void *threadstate)
|
|
44
|
+
{
|
|
45
|
+
threadstate_dispose(threadstate);
|
|
46
|
+
git__free(threadstate);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
static void git_threadstate_global_shutdown(void)
|
|
50
|
+
{
|
|
51
|
+
git_threadstate *threadstate;
|
|
52
|
+
|
|
53
|
+
threadstate = git_tlsdata_get(tls_key);
|
|
54
|
+
git_tlsdata_set(tls_key, NULL);
|
|
55
|
+
|
|
56
|
+
threadstate_dispose(threadstate);
|
|
57
|
+
git__free(threadstate);
|
|
58
|
+
|
|
59
|
+
git_tlsdata_dispose(tls_key);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
int git_threadstate_global_init(void)
|
|
63
|
+
{
|
|
64
|
+
if (git_tlsdata_init(&tls_key, &threadstate_free) != 0)
|
|
65
|
+
return -1;
|
|
66
|
+
|
|
67
|
+
return git_runtime_shutdown_register(git_threadstate_global_shutdown);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
git_threadstate *git_threadstate_get(void)
|
|
71
|
+
{
|
|
72
|
+
git_threadstate *threadstate;
|
|
73
|
+
|
|
74
|
+
if ((threadstate = git_tlsdata_get(tls_key)) != NULL)
|
|
75
|
+
return threadstate;
|
|
76
|
+
|
|
77
|
+
if ((threadstate = git__calloc(1, sizeof(git_threadstate))) == NULL ||
|
|
78
|
+
git_buf_init(&threadstate->error_buf, 0) < 0)
|
|
79
|
+
return NULL;
|
|
80
|
+
|
|
81
|
+
git_tlsdata_set(tls_key, threadstate);
|
|
82
|
+
return threadstate;
|
|
83
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef INCLUDE_threadstate_h__
|
|
8
|
+
#define INCLUDE_threadstate_h__
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
typedef struct {
|
|
13
|
+
git_error *last_error;
|
|
14
|
+
git_error error_t;
|
|
15
|
+
git_buf error_buf;
|
|
16
|
+
char oid_fmt[GIT_OID_HEXSZ+1];
|
|
17
|
+
} git_threadstate;
|
|
18
|
+
|
|
19
|
+
extern int git_threadstate_global_init(void);
|
|
20
|
+
extern git_threadstate *git_threadstate_get(void);
|
|
21
|
+
|
|
22
|
+
#define GIT_THREADSTATE (git_threadstate_get())
|
|
23
|
+
|
|
24
|
+
#endif
|
data/vendor/libgit2/src/trace.c
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
#include "trace.h"
|
|
9
9
|
|
|
10
10
|
#include "buffer.h"
|
|
11
|
-
#include "
|
|
11
|
+
#include "runtime.h"
|
|
12
12
|
#include "git2/trace.h"
|
|
13
13
|
|
|
14
14
|
#ifdef GIT_TRACE
|
|
@@ -20,7 +20,7 @@ struct git_trace_data git_trace__data = {0};
|
|
|
20
20
|
int git_trace_set(git_trace_level_t level, git_trace_cb callback)
|
|
21
21
|
{
|
|
22
22
|
#ifdef GIT_TRACE
|
|
23
|
-
|
|
23
|
+
GIT_ASSERT_ARG(level == 0 || callback != NULL);
|
|
24
24
|
|
|
25
25
|
git_trace__data.level = level;
|
|
26
26
|
git_trace__data.callback = callback;
|
data/vendor/libgit2/src/trace.h
CHANGED
|
@@ -23,28 +23,32 @@ extern struct git_trace_data git_trace__data;
|
|
|
23
23
|
|
|
24
24
|
GIT_INLINE(void) git_trace__write_fmt(
|
|
25
25
|
git_trace_level_t level,
|
|
26
|
-
const char *fmt,
|
|
26
|
+
const char *fmt,
|
|
27
|
+
va_list ap)
|
|
27
28
|
{
|
|
28
29
|
git_trace_cb callback = git_trace__data.callback;
|
|
29
30
|
git_buf message = GIT_BUF_INIT;
|
|
30
|
-
va_list ap;
|
|
31
31
|
|
|
32
|
-
va_start(ap, fmt);
|
|
33
32
|
git_buf_vprintf(&message, fmt, ap);
|
|
34
|
-
va_end(ap);
|
|
35
33
|
|
|
36
34
|
callback(level, git_buf_cstr(&message));
|
|
37
35
|
|
|
38
36
|
git_buf_dispose(&message);
|
|
39
37
|
}
|
|
40
38
|
|
|
41
|
-
#define git_trace_level()
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
39
|
+
#define git_trace_level() (git_trace__data.level)
|
|
40
|
+
|
|
41
|
+
GIT_INLINE(void) git_trace(git_trace_level_t level, const char *fmt, ...)
|
|
42
|
+
{
|
|
43
|
+
if (git_trace__data.level >= level &&
|
|
44
|
+
git_trace__data.callback != NULL) {
|
|
45
|
+
va_list ap;
|
|
46
|
+
|
|
47
|
+
va_start(ap, fmt);
|
|
48
|
+
git_trace__write_fmt(level, fmt, ap);
|
|
49
|
+
va_end(ap);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
48
52
|
|
|
49
53
|
#else
|
|
50
54
|
|
|
@@ -56,8 +60,8 @@ GIT_INLINE(void) git_trace__null(
|
|
|
56
60
|
GIT_UNUSED(fmt);
|
|
57
61
|
}
|
|
58
62
|
|
|
59
|
-
#define git_trace_level()
|
|
60
|
-
#define git_trace
|
|
63
|
+
#define git_trace_level() ((git_trace_level_t)0)
|
|
64
|
+
#define git_trace git_trace__null
|
|
61
65
|
|
|
62
66
|
#endif
|
|
63
67
|
|
|
@@ -57,7 +57,9 @@ struct git_transaction {
|
|
|
57
57
|
int git_transaction_config_new(git_transaction **out, git_config *cfg)
|
|
58
58
|
{
|
|
59
59
|
git_transaction *tx;
|
|
60
|
-
|
|
60
|
+
|
|
61
|
+
GIT_ASSERT_ARG(out);
|
|
62
|
+
GIT_ASSERT_ARG(cfg);
|
|
61
63
|
|
|
62
64
|
tx = git__calloc(1, sizeof(git_transaction));
|
|
63
65
|
GIT_ERROR_CHECK_ALLOC(tx);
|
|
@@ -74,9 +76,11 @@ int git_transaction_new(git_transaction **out, git_repository *repo)
|
|
|
74
76
|
git_pool pool;
|
|
75
77
|
git_transaction *tx = NULL;
|
|
76
78
|
|
|
77
|
-
|
|
79
|
+
GIT_ASSERT_ARG(out);
|
|
80
|
+
GIT_ASSERT_ARG(repo);
|
|
78
81
|
|
|
79
|
-
git_pool_init(&pool, 1)
|
|
82
|
+
if ((error = git_pool_init(&pool, 1)) < 0)
|
|
83
|
+
goto on_error;
|
|
80
84
|
|
|
81
85
|
tx = git_pool_mallocz(&pool, sizeof(git_transaction));
|
|
82
86
|
if (!tx) {
|
|
@@ -108,7 +112,8 @@ int git_transaction_lock_ref(git_transaction *tx, const char *refname)
|
|
|
108
112
|
int error;
|
|
109
113
|
transaction_node *node;
|
|
110
114
|
|
|
111
|
-
|
|
115
|
+
GIT_ASSERT_ARG(tx);
|
|
116
|
+
GIT_ASSERT_ARG(refname);
|
|
112
117
|
|
|
113
118
|
node = git_pool_mallocz(&tx->pool, sizeof(transaction_node));
|
|
114
119
|
GIT_ERROR_CHECK_ALLOC(node);
|
|
@@ -175,7 +180,9 @@ int git_transaction_set_target(git_transaction *tx, const char *refname, const g
|
|
|
175
180
|
int error;
|
|
176
181
|
transaction_node *node;
|
|
177
182
|
|
|
178
|
-
|
|
183
|
+
GIT_ASSERT_ARG(tx);
|
|
184
|
+
GIT_ASSERT_ARG(refname);
|
|
185
|
+
GIT_ASSERT_ARG(target);
|
|
179
186
|
|
|
180
187
|
if ((error = find_locked(&node, tx, refname)) < 0)
|
|
181
188
|
return error;
|
|
@@ -194,7 +201,9 @@ int git_transaction_set_symbolic_target(git_transaction *tx, const char *refname
|
|
|
194
201
|
int error;
|
|
195
202
|
transaction_node *node;
|
|
196
203
|
|
|
197
|
-
|
|
204
|
+
GIT_ASSERT_ARG(tx);
|
|
205
|
+
GIT_ASSERT_ARG(refname);
|
|
206
|
+
GIT_ASSERT_ARG(target);
|
|
198
207
|
|
|
199
208
|
if ((error = find_locked(&node, tx, refname)) < 0)
|
|
200
209
|
return error;
|
|
@@ -271,7 +280,9 @@ int git_transaction_set_reflog(git_transaction *tx, const char *refname, const g
|
|
|
271
280
|
int error;
|
|
272
281
|
transaction_node *node;
|
|
273
282
|
|
|
274
|
-
|
|
283
|
+
GIT_ASSERT_ARG(tx);
|
|
284
|
+
GIT_ASSERT_ARG(refname);
|
|
285
|
+
GIT_ASSERT_ARG(reflog);
|
|
275
286
|
|
|
276
287
|
if ((error = find_locked(&node, tx, refname)) < 0)
|
|
277
288
|
return error;
|
|
@@ -319,7 +330,7 @@ int git_transaction_commit(git_transaction *tx)
|
|
|
319
330
|
transaction_node *node;
|
|
320
331
|
int error = 0;
|
|
321
332
|
|
|
322
|
-
|
|
333
|
+
GIT_ASSERT_ARG(tx);
|
|
323
334
|
|
|
324
335
|
if (tx->type == TRANSACTION_CONFIG) {
|
|
325
336
|
error = git_config_unlock(tx->cfg, true);
|
|
@@ -354,7 +365,8 @@ void git_transaction_free(git_transaction *tx)
|
|
|
354
365
|
transaction_node *node;
|
|
355
366
|
git_pool pool;
|
|
356
367
|
|
|
357
|
-
|
|
368
|
+
if (!tx)
|
|
369
|
+
return;
|
|
358
370
|
|
|
359
371
|
if (tx->type == TRANSACTION_CONFIG) {
|
|
360
372
|
if (tx->cfg) {
|
|
@@ -148,8 +148,8 @@ int git_transport_register(
|
|
|
148
148
|
size_t i;
|
|
149
149
|
int error = 0;
|
|
150
150
|
|
|
151
|
-
|
|
152
|
-
|
|
151
|
+
GIT_ASSERT_ARG(scheme);
|
|
152
|
+
GIT_ASSERT_ARG(cb);
|
|
153
153
|
|
|
154
154
|
if ((error = git_buf_printf(&prefix, "%s://", scheme)) < 0)
|
|
155
155
|
goto on_error;
|
|
@@ -186,7 +186,7 @@ int git_transport_unregister(const char *scheme)
|
|
|
186
186
|
size_t i;
|
|
187
187
|
int error = 0;
|
|
188
188
|
|
|
189
|
-
|
|
189
|
+
GIT_ASSERT_ARG(scheme);
|
|
190
190
|
|
|
191
191
|
if ((error = git_buf_printf(&prefix, "%s://", scheme)) < 0)
|
|
192
192
|
goto done;
|
|
@@ -65,7 +65,9 @@ static int negotiate_set_challenge(
|
|
|
65
65
|
{
|
|
66
66
|
http_auth_negotiate_context *ctx = (http_auth_negotiate_context *)c;
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
GIT_ASSERT_ARG(ctx);
|
|
69
|
+
GIT_ASSERT_ARG(challenge);
|
|
70
|
+
GIT_ASSERT(ctx->configured);
|
|
69
71
|
|
|
70
72
|
git__free(ctx->challenge);
|
|
71
73
|
|
|
@@ -108,7 +110,12 @@ static int negotiate_next_token(
|
|
|
108
110
|
size_t challenge_len;
|
|
109
111
|
int error = 0;
|
|
110
112
|
|
|
111
|
-
|
|
113
|
+
GIT_ASSERT_ARG(buf);
|
|
114
|
+
GIT_ASSERT_ARG(ctx);
|
|
115
|
+
GIT_ASSERT_ARG(cred);
|
|
116
|
+
|
|
117
|
+
GIT_ASSERT(ctx->configured);
|
|
118
|
+
GIT_ASSERT(cred->credtype == GIT_CREDENTIAL_DEFAULT);
|
|
112
119
|
|
|
113
120
|
if (ctx->complete)
|
|
114
121
|
return 0;
|
|
@@ -202,7 +209,7 @@ static int negotiate_is_complete(git_http_auth_context *c)
|
|
|
202
209
|
{
|
|
203
210
|
http_auth_negotiate_context *ctx = (http_auth_negotiate_context *)c;
|
|
204
211
|
|
|
205
|
-
|
|
212
|
+
GIT_ASSERT_ARG(ctx);
|
|
206
213
|
|
|
207
214
|
return (ctx->complete == 1);
|
|
208
215
|
}
|
|
@@ -260,7 +267,7 @@ static int negotiate_init_context(
|
|
|
260
267
|
|
|
261
268
|
if (!ctx->oid) {
|
|
262
269
|
git_error_set(GIT_ERROR_NET, "negotiate authentication is not supported");
|
|
263
|
-
return
|
|
270
|
+
return GIT_EAUTH;
|
|
264
271
|
}
|
|
265
272
|
|
|
266
273
|
git_buf_puts(&ctx->target, "HTTP@");
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
#ifdef GIT_NTLM
|
|
16
16
|
|
|
17
|
-
#include "
|
|
17
|
+
#include "ntlmclient.h"
|
|
18
18
|
|
|
19
19
|
typedef struct {
|
|
20
20
|
git_http_auth_context parent;
|
|
@@ -29,7 +29,8 @@ static int ntlm_set_challenge(
|
|
|
29
29
|
{
|
|
30
30
|
http_auth_ntlm_context *ctx = (http_auth_ntlm_context *)c;
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
GIT_ASSERT_ARG(ctx);
|
|
33
|
+
GIT_ASSERT_ARG(challenge);
|
|
33
34
|
|
|
34
35
|
git__free(ctx->challenge);
|
|
35
36
|
|
|
@@ -46,7 +47,7 @@ static int ntlm_set_credentials(http_auth_ntlm_context *ctx, git_credential *_cr
|
|
|
46
47
|
char *domain = NULL, *domainuser = NULL;
|
|
47
48
|
int error = 0;
|
|
48
49
|
|
|
49
|
-
|
|
50
|
+
GIT_ASSERT(_cred->credtype == GIT_CREDENTIAL_USERPASS_PLAINTEXT);
|
|
50
51
|
cred = (git_credential_userpass_plaintext *)_cred;
|
|
51
52
|
|
|
52
53
|
if ((sep = strchr(cred->username, '\\')) != NULL) {
|
|
@@ -84,9 +85,12 @@ static int ntlm_next_token(
|
|
|
84
85
|
git_buf input_buf = GIT_BUF_INIT;
|
|
85
86
|
const unsigned char *msg;
|
|
86
87
|
size_t challenge_len, msg_len;
|
|
87
|
-
int error =
|
|
88
|
+
int error = GIT_EAUTH;
|
|
88
89
|
|
|
89
|
-
|
|
90
|
+
GIT_ASSERT_ARG(buf);
|
|
91
|
+
GIT_ASSERT_ARG(ctx);
|
|
92
|
+
|
|
93
|
+
GIT_ASSERT(ctx->ntlm);
|
|
90
94
|
|
|
91
95
|
challenge_len = ctx->challenge ? strlen(ctx->challenge) : 0;
|
|
92
96
|
|
|
@@ -162,7 +166,7 @@ static int ntlm_is_complete(git_http_auth_context *c)
|
|
|
162
166
|
{
|
|
163
167
|
http_auth_ntlm_context *ctx = (http_auth_ntlm_context *)c;
|
|
164
168
|
|
|
165
|
-
|
|
169
|
+
GIT_ASSERT_ARG(ctx);
|
|
166
170
|
return (ctx->complete == true);
|
|
167
171
|
}
|
|
168
172
|
|
|
@@ -85,7 +85,9 @@ int git_credential_userpass_plaintext_new(
|
|
|
85
85
|
{
|
|
86
86
|
git_credential_userpass_plaintext *c;
|
|
87
87
|
|
|
88
|
-
|
|
88
|
+
GIT_ASSERT_ARG(cred);
|
|
89
|
+
GIT_ASSERT_ARG(username);
|
|
90
|
+
GIT_ASSERT_ARG(password);
|
|
89
91
|
|
|
90
92
|
c = git__malloc(sizeof(git_credential_userpass_plaintext));
|
|
91
93
|
GIT_ERROR_CHECK_ALLOC(c);
|
|
@@ -233,7 +235,9 @@ static int git_credential_ssh_key_type_new(
|
|
|
233
235
|
{
|
|
234
236
|
git_credential_ssh_key *c;
|
|
235
237
|
|
|
236
|
-
|
|
238
|
+
GIT_ASSERT_ARG(username);
|
|
239
|
+
GIT_ASSERT_ARG(cred);
|
|
240
|
+
GIT_ASSERT_ARG(privatekey);
|
|
237
241
|
|
|
238
242
|
c = git__calloc(1, sizeof(git_credential_ssh_key));
|
|
239
243
|
GIT_ERROR_CHECK_ALLOC(c);
|
|
@@ -269,7 +273,9 @@ int git_credential_ssh_interactive_new(
|
|
|
269
273
|
{
|
|
270
274
|
git_credential_ssh_interactive *c;
|
|
271
275
|
|
|
272
|
-
|
|
276
|
+
GIT_ASSERT_ARG(out);
|
|
277
|
+
GIT_ASSERT_ARG(username);
|
|
278
|
+
GIT_ASSERT_ARG(prompt_callback);
|
|
273
279
|
|
|
274
280
|
c = git__calloc(1, sizeof(git_credential_ssh_interactive));
|
|
275
281
|
GIT_ERROR_CHECK_ALLOC(c);
|
|
@@ -290,7 +296,8 @@ int git_credential_ssh_interactive_new(
|
|
|
290
296
|
int git_credential_ssh_key_from_agent(git_credential **cred, const char *username) {
|
|
291
297
|
git_credential_ssh_key *c;
|
|
292
298
|
|
|
293
|
-
|
|
299
|
+
GIT_ASSERT_ARG(username);
|
|
300
|
+
GIT_ASSERT_ARG(cred);
|
|
294
301
|
|
|
295
302
|
c = git__calloc(1, sizeof(git_credential_ssh_key));
|
|
296
303
|
GIT_ERROR_CHECK_ALLOC(c);
|
|
@@ -317,7 +324,8 @@ int git_credential_ssh_custom_new(
|
|
|
317
324
|
{
|
|
318
325
|
git_credential_ssh_custom *c;
|
|
319
326
|
|
|
320
|
-
|
|
327
|
+
GIT_ASSERT_ARG(username);
|
|
328
|
+
GIT_ASSERT_ARG(cred);
|
|
321
329
|
|
|
322
330
|
c = git__calloc(1, sizeof(git_credential_ssh_custom));
|
|
323
331
|
GIT_ERROR_CHECK_ALLOC(c);
|
|
@@ -347,7 +355,7 @@ int git_credential_default_new(git_credential **cred)
|
|
|
347
355
|
{
|
|
348
356
|
git_credential_default *c;
|
|
349
357
|
|
|
350
|
-
|
|
358
|
+
GIT_ASSERT_ARG(cred);
|
|
351
359
|
|
|
352
360
|
c = git__calloc(1, sizeof(git_credential_default));
|
|
353
361
|
GIT_ERROR_CHECK_ALLOC(c);
|
|
@@ -364,7 +372,7 @@ int git_credential_username_new(git_credential **cred, const char *username)
|
|
|
364
372
|
git_credential_username *c;
|
|
365
373
|
size_t len, allocsize;
|
|
366
374
|
|
|
367
|
-
|
|
375
|
+
GIT_ASSERT_ARG(cred);
|
|
368
376
|
|
|
369
377
|
len = strlen(username);
|
|
370
378
|
|
|
@@ -391,6 +399,7 @@ void git_credential_free(git_credential *cred)
|
|
|
391
399
|
|
|
392
400
|
/* Deprecated credential functions */
|
|
393
401
|
|
|
402
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
394
403
|
int git_cred_has_username(git_credential *cred)
|
|
395
404
|
{
|
|
396
405
|
return git_credential_has_username(cred);
|
|
@@ -474,3 +483,4 @@ void git_cred_free(git_credential *cred)
|
|
|
474
483
|
{
|
|
475
484
|
git_credential_free(cred);
|
|
476
485
|
}
|
|
486
|
+
#endif
|