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,62 @@
|
|
|
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_runtime_h__
|
|
8
|
+
#define INCLUDE_runtime_h__
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
typedef int (*git_runtime_init_fn)(void);
|
|
13
|
+
typedef void (*git_runtime_shutdown_fn)(void);
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Start up a new runtime. If this is the first time that this
|
|
17
|
+
* function is called within the context of the current library
|
|
18
|
+
* or executable, then the given `init_fns` will be invoked. If
|
|
19
|
+
* it is not the first time, they will be ignored.
|
|
20
|
+
*
|
|
21
|
+
* The given initialization functions _may_ register shutdown
|
|
22
|
+
* handlers using `git_runtime_shutdown_register` to be notified
|
|
23
|
+
* when the runtime is shutdown.
|
|
24
|
+
*
|
|
25
|
+
* @param init_fns The list of initialization functions to call
|
|
26
|
+
* @param cnt The number of init_fns
|
|
27
|
+
* @return The number of initializations performed (including this one) or an error
|
|
28
|
+
*/
|
|
29
|
+
int git_runtime_init(git_runtime_init_fn init_fns[], size_t cnt);
|
|
30
|
+
|
|
31
|
+
/*
|
|
32
|
+
* Returns the number of initializations active (the number of calls to
|
|
33
|
+
* `git_runtime_init` minus the number of calls sto `git_runtime_shutdown`).
|
|
34
|
+
* If 0, the runtime is not currently initialized.
|
|
35
|
+
*
|
|
36
|
+
* @return The number of initializations performed or an error
|
|
37
|
+
*/
|
|
38
|
+
int git_runtime_init_count(void);
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Shut down the runtime. If this is the last shutdown call,
|
|
42
|
+
* such that there are no remaining `init` calls, then any
|
|
43
|
+
* shutdown hooks that have been registered will be invoked.
|
|
44
|
+
*
|
|
45
|
+
* The number of outstanding initializations will be returned.
|
|
46
|
+
* If this number is 0, then the runtime is shutdown.
|
|
47
|
+
*
|
|
48
|
+
* @return The number of outstanding initializations (after this one) or an error
|
|
49
|
+
*/
|
|
50
|
+
int git_runtime_shutdown(void);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Register a shutdown handler for this runtime. This should be done
|
|
54
|
+
* by a function invoked by `git_runtime_init` to ensure that the
|
|
55
|
+
* appropriate locks are taken.
|
|
56
|
+
*
|
|
57
|
+
* @param callback The shutdown handler callback
|
|
58
|
+
* @return 0 or an error code
|
|
59
|
+
*/
|
|
60
|
+
int git_runtime_shutdown_register(git_runtime_shutdown_fn callback);
|
|
61
|
+
|
|
62
|
+
#endif
|
|
@@ -4,16 +4,8 @@
|
|
|
4
4
|
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
6
|
*/
|
|
7
|
-
#ifndef INCLUDE_refdb_fs_h__
|
|
8
|
-
#define INCLUDE_refdb_fs_h__
|
|
9
7
|
|
|
10
|
-
|
|
8
|
+
extern int git_settings_global_init(void);
|
|
11
9
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
typedef struct {
|
|
15
|
-
git_strmap *packfile;
|
|
16
|
-
time_t packfile_time;
|
|
17
|
-
} git_refcache;
|
|
18
|
-
|
|
19
|
-
#endif
|
|
10
|
+
extern const char *git_libgit2__user_agent(void);
|
|
11
|
+
extern const char *git_libgit2__ssl_ciphers(void);
|
|
@@ -65,7 +65,8 @@ int git_signature_new(git_signature **sig_out, const char *name, const char *ema
|
|
|
65
65
|
{
|
|
66
66
|
git_signature *p = NULL;
|
|
67
67
|
|
|
68
|
-
|
|
68
|
+
GIT_ASSERT_ARG(name);
|
|
69
|
+
GIT_ASSERT_ARG(email);
|
|
69
70
|
|
|
70
71
|
*sig_out = NULL;
|
|
71
72
|
|
|
@@ -279,7 +280,8 @@ int git_signature_from_buffer(git_signature **out, const char *buf)
|
|
|
279
280
|
const char *buf_end;
|
|
280
281
|
int error;
|
|
281
282
|
|
|
282
|
-
|
|
283
|
+
GIT_ASSERT_ARG(out);
|
|
284
|
+
GIT_ASSERT_ARG(buf);
|
|
283
285
|
|
|
284
286
|
*out = NULL;
|
|
285
287
|
|
|
@@ -302,8 +304,6 @@ void git_signature__writebuf(git_buf *buf, const char *header, const git_signatu
|
|
|
302
304
|
int offset, hours, mins;
|
|
303
305
|
char sign;
|
|
304
306
|
|
|
305
|
-
assert(buf && sig);
|
|
306
|
-
|
|
307
307
|
offset = sig->when.offset;
|
|
308
308
|
sign = (sig->when.offset < 0 || sig->when.sign == '-') ? '-' : '+';
|
|
309
309
|
|
|
@@ -320,7 +320,8 @@ void git_signature__writebuf(git_buf *buf, const char *header, const git_signatu
|
|
|
320
320
|
|
|
321
321
|
bool git_signature__equal(const git_signature *one, const git_signature *two)
|
|
322
322
|
{
|
|
323
|
-
|
|
323
|
+
GIT_ASSERT_ARG(one);
|
|
324
|
+
GIT_ASSERT_ARG(two);
|
|
324
325
|
|
|
325
326
|
return
|
|
326
327
|
git__strcmp(one->name, two->name) == 0 &&
|
|
@@ -25,9 +25,8 @@ int git_sortedcache_new(
|
|
|
25
25
|
sc = git__calloc(1, alloclen);
|
|
26
26
|
GIT_ERROR_CHECK_ALLOC(sc);
|
|
27
27
|
|
|
28
|
-
git_pool_init(&sc->pool, 1)
|
|
29
|
-
|
|
30
|
-
if (git_vector_init(&sc->items, 4, item_cmp) < 0 ||
|
|
28
|
+
if (git_pool_init(&sc->pool, 1) < 0 ||
|
|
29
|
+
git_vector_init(&sc->items, 4, item_cmp) < 0 ||
|
|
31
30
|
git_strmap_new(&sc->map) < 0)
|
|
32
31
|
goto fail;
|
|
33
32
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
#include "util.h"
|
|
13
13
|
#include "futils.h"
|
|
14
14
|
#include "vector.h"
|
|
15
|
-
#include "thread
|
|
15
|
+
#include "thread.h"
|
|
16
16
|
#include "pool.h"
|
|
17
17
|
#include "strmap.h"
|
|
18
18
|
|
|
@@ -58,7 +58,7 @@ typedef struct {
|
|
|
58
58
|
* may be NULL. The cache makes it easy to load this and check
|
|
59
59
|
* if it has been modified since the last load and/or write.
|
|
60
60
|
*/
|
|
61
|
-
int git_sortedcache_new(
|
|
61
|
+
GIT_WARN_UNUSED_RESULT int git_sortedcache_new(
|
|
62
62
|
git_sortedcache **out,
|
|
63
63
|
size_t item_path_offset, /* use offsetof(struct, path-field) macro */
|
|
64
64
|
git_sortedcache_free_item_fn free_item,
|
|
@@ -71,7 +71,7 @@ int git_sortedcache_new(
|
|
|
71
71
|
* - `copy_item` can be NULL to just use memcpy
|
|
72
72
|
* - if `lock`, grabs read lock on `src` during copy and releases after
|
|
73
73
|
*/
|
|
74
|
-
int git_sortedcache_copy(
|
|
74
|
+
GIT_WARN_UNUSED_RESULT int git_sortedcache_copy(
|
|
75
75
|
git_sortedcache **out,
|
|
76
76
|
git_sortedcache *src,
|
|
77
77
|
bool lock,
|
|
@@ -100,7 +100,7 @@ const char *git_sortedcache_path(git_sortedcache *sc);
|
|
|
100
100
|
*/
|
|
101
101
|
|
|
102
102
|
/* Lock sortedcache for write */
|
|
103
|
-
int git_sortedcache_wlock(git_sortedcache *sc);
|
|
103
|
+
GIT_WARN_UNUSED_RESULT int git_sortedcache_wlock(git_sortedcache *sc);
|
|
104
104
|
|
|
105
105
|
/* Unlock sorted cache when done with write */
|
|
106
106
|
void git_sortedcache_wunlock(git_sortedcache *sc);
|
|
@@ -120,7 +120,8 @@ void git_sortedcache_wunlock(git_sortedcache *sc);
|
|
|
120
120
|
*
|
|
121
121
|
* @return 0 if up-to-date, 1 if out-of-date, <0 on error
|
|
122
122
|
*/
|
|
123
|
-
int git_sortedcache_lockandload(
|
|
123
|
+
GIT_WARN_UNUSED_RESULT int git_sortedcache_lockandload(
|
|
124
|
+
git_sortedcache *sc, git_buf *buf);
|
|
124
125
|
|
|
125
126
|
/* Refresh file timestamp after write completes
|
|
126
127
|
* You should already be holding the write lock when you call this.
|
|
@@ -132,12 +133,13 @@ void git_sortedcache_updated(git_sortedcache *sc);
|
|
|
132
133
|
* If `wlock` is true, grabs write lock and releases when done, otherwise
|
|
133
134
|
* you should already be holding a write lock when you call this.
|
|
134
135
|
*/
|
|
135
|
-
int git_sortedcache_clear(
|
|
136
|
+
GIT_WARN_UNUSED_RESULT int git_sortedcache_clear(
|
|
137
|
+
git_sortedcache *sc, bool wlock);
|
|
136
138
|
|
|
137
139
|
/* Find and/or insert item, returning pointer to item data.
|
|
138
140
|
* You should already be holding the write lock when you call this.
|
|
139
141
|
*/
|
|
140
|
-
int git_sortedcache_upsert(
|
|
142
|
+
GIT_WARN_UNUSED_RESULT int git_sortedcache_upsert(
|
|
141
143
|
void **out, git_sortedcache *sc, const char *key);
|
|
142
144
|
|
|
143
145
|
/* Removes entry at pos from cache
|
|
@@ -155,7 +157,7 @@ int git_sortedcache_remove(git_sortedcache *sc, size_t pos);
|
|
|
155
157
|
*/
|
|
156
158
|
|
|
157
159
|
/* Lock sortedcache for read */
|
|
158
|
-
int git_sortedcache_rlock(git_sortedcache *sc);
|
|
160
|
+
GIT_WARN_UNUSED_RESULT int git_sortedcache_rlock(git_sortedcache *sc);
|
|
159
161
|
|
|
160
162
|
/* Unlock sorted cache when done with read */
|
|
161
163
|
void git_sortedcache_runlock(git_sortedcache *sc);
|
data/vendor/libgit2/src/stash.c
CHANGED
|
@@ -173,7 +173,7 @@ static int stash_to_index(
|
|
|
173
173
|
git_index *index,
|
|
174
174
|
const char *path)
|
|
175
175
|
{
|
|
176
|
-
git_index *repo_index;
|
|
176
|
+
git_index *repo_index = NULL;
|
|
177
177
|
git_index_entry entry = {{0}};
|
|
178
178
|
struct stat st;
|
|
179
179
|
int error;
|
|
@@ -187,7 +187,7 @@ static int stash_to_index(
|
|
|
187
187
|
return error;
|
|
188
188
|
|
|
189
189
|
git_index_entry__init_from_stat(&entry, &st,
|
|
190
|
-
(repo_index
|
|
190
|
+
(repo_index == NULL || !repo_index->distrust_filemode));
|
|
191
191
|
|
|
192
192
|
entry.path = path;
|
|
193
193
|
|
|
@@ -546,7 +546,9 @@ int git_stash_save(
|
|
|
546
546
|
git_buf msg = GIT_BUF_INIT;
|
|
547
547
|
int error;
|
|
548
548
|
|
|
549
|
-
|
|
549
|
+
GIT_ASSERT_ARG(out);
|
|
550
|
+
GIT_ASSERT_ARG(repo);
|
|
551
|
+
GIT_ASSERT_ARG(stasher);
|
|
550
552
|
|
|
551
553
|
if ((error = git_repository__ensure_not_bare(repo, "stash save")) < 0)
|
|
552
554
|
return error;
|
|
@@ -776,10 +778,12 @@ int git_stash_apply_options_init(git_stash_apply_options *opts, unsigned int ver
|
|
|
776
778
|
return 0;
|
|
777
779
|
}
|
|
778
780
|
|
|
781
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
779
782
|
int git_stash_apply_init_options(git_stash_apply_options *opts, unsigned int version)
|
|
780
783
|
{
|
|
781
784
|
return git_stash_apply_options_init(opts, version);
|
|
782
785
|
}
|
|
786
|
+
#endif
|
|
783
787
|
|
|
784
788
|
#define NOTIFY_PROGRESS(opts, progress_type) \
|
|
785
789
|
do { \
|
data/vendor/libgit2/src/status.c
CHANGED
|
@@ -391,14 +391,14 @@ done:
|
|
|
391
391
|
|
|
392
392
|
size_t git_status_list_entrycount(git_status_list *status)
|
|
393
393
|
{
|
|
394
|
-
|
|
394
|
+
GIT_ASSERT_ARG_WITH_RETVAL(status, 0);
|
|
395
395
|
|
|
396
396
|
return status->paired.length;
|
|
397
397
|
}
|
|
398
398
|
|
|
399
399
|
const git_status_entry *git_status_byindex(git_status_list *status, size_t i)
|
|
400
400
|
{
|
|
401
|
-
|
|
401
|
+
GIT_ASSERT_ARG_WITH_RETVAL(status, NULL);
|
|
402
402
|
|
|
403
403
|
return git_vector_get(&status->paired, i);
|
|
404
404
|
}
|
|
@@ -492,7 +492,9 @@ int git_status_file(
|
|
|
492
492
|
struct status_file_info sfi = {0};
|
|
493
493
|
git_index *index;
|
|
494
494
|
|
|
495
|
-
|
|
495
|
+
GIT_ASSERT_ARG(status_flags);
|
|
496
|
+
GIT_ASSERT_ARG(repo);
|
|
497
|
+
GIT_ASSERT_ARG(path);
|
|
496
498
|
|
|
497
499
|
if ((error = git_repository_index__weakptr(&index, repo)) < 0)
|
|
498
500
|
return error;
|
|
@@ -548,15 +550,18 @@ int git_status_options_init(git_status_options *opts, unsigned int version)
|
|
|
548
550
|
return 0;
|
|
549
551
|
}
|
|
550
552
|
|
|
553
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
551
554
|
int git_status_init_options(git_status_options *opts, unsigned int version)
|
|
552
555
|
{
|
|
553
556
|
return git_status_options_init(opts, version);
|
|
554
557
|
}
|
|
558
|
+
#endif
|
|
555
559
|
|
|
556
560
|
int git_status_list_get_perfdata(
|
|
557
561
|
git_diff_perfdata *out, const git_status_list *status)
|
|
558
562
|
{
|
|
559
|
-
|
|
563
|
+
GIT_ASSERT_ARG(out);
|
|
564
|
+
|
|
560
565
|
GIT_ERROR_CHECK_VERSION(out, GIT_DIFF_PERFDATA_VERSION, "git_diff_perfdata");
|
|
561
566
|
|
|
562
567
|
out->stat_calls = 0;
|
|
@@ -0,0 +1,64 @@
|
|
|
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 "util.h"
|
|
9
|
+
|
|
10
|
+
#include "common.h"
|
|
11
|
+
|
|
12
|
+
int git_strarray_copy(git_strarray *tgt, const git_strarray *src)
|
|
13
|
+
{
|
|
14
|
+
size_t i;
|
|
15
|
+
|
|
16
|
+
GIT_ASSERT_ARG(tgt);
|
|
17
|
+
GIT_ASSERT_ARG(src);
|
|
18
|
+
|
|
19
|
+
memset(tgt, 0, sizeof(*tgt));
|
|
20
|
+
|
|
21
|
+
if (!src->count)
|
|
22
|
+
return 0;
|
|
23
|
+
|
|
24
|
+
tgt->strings = git__calloc(src->count, sizeof(char *));
|
|
25
|
+
GIT_ERROR_CHECK_ALLOC(tgt->strings);
|
|
26
|
+
|
|
27
|
+
for (i = 0; i < src->count; ++i) {
|
|
28
|
+
if (!src->strings[i])
|
|
29
|
+
continue;
|
|
30
|
+
|
|
31
|
+
tgt->strings[tgt->count] = git__strdup(src->strings[i]);
|
|
32
|
+
if (!tgt->strings[tgt->count]) {
|
|
33
|
+
git_strarray_dispose(tgt);
|
|
34
|
+
memset(tgt, 0, sizeof(*tgt));
|
|
35
|
+
return -1;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
tgt->count++;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return 0;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
void git_strarray_dispose(git_strarray *array)
|
|
45
|
+
{
|
|
46
|
+
size_t i;
|
|
47
|
+
|
|
48
|
+
if (array == NULL)
|
|
49
|
+
return;
|
|
50
|
+
|
|
51
|
+
for (i = 0; i < array->count; ++i)
|
|
52
|
+
git__free(array->strings[i]);
|
|
53
|
+
|
|
54
|
+
git__free(array->strings);
|
|
55
|
+
|
|
56
|
+
memset(array, 0, sizeof(*array));
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
#ifndef GIT_DEPRECATE_HARD
|
|
60
|
+
void git_strarray_free(git_strarray *array)
|
|
61
|
+
{
|
|
62
|
+
git_strarray_dispose(array);
|
|
63
|
+
}
|
|
64
|
+
#endif
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
#include <ctype.h>
|
|
13
13
|
|
|
14
|
-
#include "
|
|
14
|
+
#include "runtime.h"
|
|
15
15
|
#include "stream.h"
|
|
16
16
|
#include "streams/socket.h"
|
|
17
17
|
#include "netops.h"
|
|
@@ -68,8 +68,6 @@ static void shutdown_ssl(void)
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
|
|
71
|
-
int git_mbedtls__set_cert_location(const char *path, int is_dir);
|
|
72
|
-
|
|
73
71
|
int git_mbedtls_stream_global_init(void)
|
|
74
72
|
{
|
|
75
73
|
int loaded = 0;
|
|
@@ -148,13 +146,11 @@ int git_mbedtls_stream_global_init(void)
|
|
|
148
146
|
|
|
149
147
|
/* load default certificates */
|
|
150
148
|
if (crtpath != NULL && stat(crtpath, &statbuf) == 0 && S_ISREG(statbuf.st_mode))
|
|
151
|
-
loaded = (git_mbedtls__set_cert_location(crtpath,
|
|
149
|
+
loaded = (git_mbedtls__set_cert_location(crtpath, NULL) == 0);
|
|
152
150
|
if (!loaded && crtpath != NULL && stat(crtpath, &statbuf) == 0 && S_ISDIR(statbuf.st_mode))
|
|
153
|
-
loaded = (git_mbedtls__set_cert_location(
|
|
154
|
-
|
|
155
|
-
git__on_shutdown(shutdown_ssl);
|
|
151
|
+
loaded = (git_mbedtls__set_cert_location(NULL, crtpath) == 0);
|
|
156
152
|
|
|
157
|
-
return
|
|
153
|
+
return git_runtime_shutdown_register(shutdown_ssl);
|
|
158
154
|
|
|
159
155
|
cleanup:
|
|
160
156
|
mbedtls_ctr_drbg_free(ctr_drbg);
|
|
@@ -183,8 +179,8 @@ static int ssl_set_error(mbedtls_ssl_context *ssl, int error)
|
|
|
183
179
|
char errbuf[512];
|
|
184
180
|
int ret = -1;
|
|
185
181
|
|
|
186
|
-
|
|
187
|
-
|
|
182
|
+
GIT_ASSERT(error != MBEDTLS_ERR_SSL_WANT_READ);
|
|
183
|
+
GIT_ASSERT(error != MBEDTLS_ERR_SSL_WANT_WRITE);
|
|
188
184
|
|
|
189
185
|
if (error != 0)
|
|
190
186
|
mbedtls_strerror( error, errbuf, 512 );
|
|
@@ -425,7 +421,9 @@ int git_mbedtls_stream_new(
|
|
|
425
421
|
git_stream *stream;
|
|
426
422
|
int error;
|
|
427
423
|
|
|
428
|
-
|
|
424
|
+
GIT_ASSERT_ARG(out);
|
|
425
|
+
GIT_ASSERT_ARG(host);
|
|
426
|
+
GIT_ASSERT_ARG(port);
|
|
429
427
|
|
|
430
428
|
if ((error = git_socket_stream_new(&stream, host, port)) < 0)
|
|
431
429
|
return error;
|
|
@@ -438,23 +436,22 @@ int git_mbedtls_stream_new(
|
|
|
438
436
|
return error;
|
|
439
437
|
}
|
|
440
438
|
|
|
441
|
-
int git_mbedtls__set_cert_location(const char *
|
|
439
|
+
int git_mbedtls__set_cert_location(const char *file, const char *path)
|
|
442
440
|
{
|
|
443
441
|
int ret = 0;
|
|
444
442
|
char errbuf[512];
|
|
445
443
|
mbedtls_x509_crt *cacert;
|
|
446
444
|
|
|
447
|
-
|
|
445
|
+
GIT_ASSERT_ARG(file || path);
|
|
448
446
|
|
|
449
447
|
cacert = git__malloc(sizeof(mbedtls_x509_crt));
|
|
450
448
|
GIT_ERROR_CHECK_ALLOC(cacert);
|
|
451
449
|
|
|
452
450
|
mbedtls_x509_crt_init(cacert);
|
|
453
|
-
if (
|
|
451
|
+
if (file)
|
|
452
|
+
ret = mbedtls_x509_crt_parse_file(cacert, file);
|
|
453
|
+
if (ret >= 0 && path)
|
|
454
454
|
ret = mbedtls_x509_crt_parse_path(cacert, path);
|
|
455
|
-
} else {
|
|
456
|
-
ret = mbedtls_x509_crt_parse_file(cacert, path);
|
|
457
|
-
}
|
|
458
455
|
/* mbedtls_x509_crt_parse_path returns the number of invalid certs on success */
|
|
459
456
|
if (ret < 0) {
|
|
460
457
|
mbedtls_x509_crt_free(cacert);
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
extern int git_mbedtls_stream_global_init(void);
|
|
15
15
|
|
|
16
16
|
#ifdef GIT_MBEDTLS
|
|
17
|
-
extern int git_mbedtls__set_cert_location(const char *
|
|
17
|
+
extern int git_mbedtls__set_cert_location(const char *file, const char *path);
|
|
18
18
|
|
|
19
19
|
extern int git_mbedtls_stream_new(git_stream **out, const char *host, const char *port);
|
|
20
20
|
extern int git_mbedtls_stream_wrap(git_stream **out, git_stream *in, const char *host);
|