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
|
@@ -22,6 +22,7 @@ typedef struct git_mwindow {
|
|
|
22
22
|
} git_mwindow;
|
|
23
23
|
|
|
24
24
|
typedef struct git_mwindow_file {
|
|
25
|
+
git_mutex lock; /* protects updates to fd */
|
|
25
26
|
git_mwindow *windows;
|
|
26
27
|
int fd;
|
|
27
28
|
off64_t size;
|
|
@@ -38,8 +39,7 @@ typedef struct git_mwindow_ctl {
|
|
|
38
39
|
} git_mwindow_ctl;
|
|
39
40
|
|
|
40
41
|
int git_mwindow_contains(git_mwindow *win, off64_t offset);
|
|
41
|
-
|
|
42
|
-
void git_mwindow_free_all_locked(git_mwindow_file *mwf); /* run under lock */
|
|
42
|
+
int git_mwindow_free_all(git_mwindow_file *mwf); /* locks */
|
|
43
43
|
unsigned char *git_mwindow_open(git_mwindow_file *mwf, git_mwindow **cursor, off64_t offset, size_t extra, unsigned int *left);
|
|
44
44
|
int git_mwindow_file_register(git_mwindow_file *mwf);
|
|
45
45
|
void git_mwindow_file_deregister(git_mwindow_file *mwf);
|
|
@@ -49,6 +49,6 @@ extern int git_mwindow_global_init(void);
|
|
|
49
49
|
|
|
50
50
|
struct git_pack_file; /* just declaration to avoid cyclical includes */
|
|
51
51
|
int git_mwindow_get_pack(struct git_pack_file **out, const char *path);
|
|
52
|
-
|
|
52
|
+
int git_mwindow_put_pack(struct git_pack_file *pack);
|
|
53
53
|
|
|
54
54
|
#endif
|
data/vendor/libgit2/src/net.c
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#include "posix.h"
|
|
15
15
|
#include "buffer.h"
|
|
16
16
|
#include "http_parser.h"
|
|
17
|
-
#include "
|
|
17
|
+
#include "runtime.h"
|
|
18
18
|
|
|
19
19
|
#define DEFAULT_PORT_HTTP "80"
|
|
20
20
|
#define DEFAULT_PORT_HTTPS "443"
|
|
@@ -35,6 +35,46 @@ static const char *default_port_for_scheme(const char *scheme)
|
|
|
35
35
|
return NULL;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
+
int git_net_url_dup(git_net_url *out, git_net_url *in)
|
|
39
|
+
{
|
|
40
|
+
if (in->scheme) {
|
|
41
|
+
out->scheme = git__strdup(in->scheme);
|
|
42
|
+
GIT_ERROR_CHECK_ALLOC(out->scheme);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (in->host) {
|
|
46
|
+
out->host = git__strdup(in->host);
|
|
47
|
+
GIT_ERROR_CHECK_ALLOC(out->host);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (in->port) {
|
|
51
|
+
out->port = git__strdup(in->port);
|
|
52
|
+
GIT_ERROR_CHECK_ALLOC(out->port);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (in->path) {
|
|
56
|
+
out->path = git__strdup(in->path);
|
|
57
|
+
GIT_ERROR_CHECK_ALLOC(out->path);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (in->query) {
|
|
61
|
+
out->query = git__strdup(in->query);
|
|
62
|
+
GIT_ERROR_CHECK_ALLOC(out->query);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
if (in->username) {
|
|
66
|
+
out->username = git__strdup(in->username);
|
|
67
|
+
GIT_ERROR_CHECK_ALLOC(out->username);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
if (in->password) {
|
|
71
|
+
out->password = git__strdup(in->password);
|
|
72
|
+
GIT_ERROR_CHECK_ALLOC(out->password);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return 0;
|
|
76
|
+
}
|
|
77
|
+
|
|
38
78
|
int git_net_url_parse(git_net_url *url, const char *given)
|
|
39
79
|
{
|
|
40
80
|
struct http_parser_url u = {0};
|
|
@@ -281,7 +321,8 @@ int git_net_url_apply_redirect(
|
|
|
281
321
|
git_net_url tmp = GIT_NET_URL_INIT;
|
|
282
322
|
int error = 0;
|
|
283
323
|
|
|
284
|
-
|
|
324
|
+
GIT_ASSERT(url);
|
|
325
|
+
GIT_ASSERT(redirect_location);
|
|
285
326
|
|
|
286
327
|
if (redirect_location[0] == '/') {
|
|
287
328
|
git__free(url->path);
|
|
@@ -334,9 +375,19 @@ bool git_net_url_valid(git_net_url *url)
|
|
|
334
375
|
return (url->host && url->port && url->path);
|
|
335
376
|
}
|
|
336
377
|
|
|
337
|
-
|
|
378
|
+
bool git_net_url_is_default_port(git_net_url *url)
|
|
338
379
|
{
|
|
339
|
-
|
|
380
|
+
const char *default_port;
|
|
381
|
+
|
|
382
|
+
if ((default_port = default_port_for_scheme(url->scheme)) != NULL)
|
|
383
|
+
return (strcmp(url->port, default_port) == 0);
|
|
384
|
+
else
|
|
385
|
+
return false;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
bool git_net_url_is_ipv6(git_net_url *url)
|
|
389
|
+
{
|
|
390
|
+
return (strchr(url->host, ':') != NULL);
|
|
340
391
|
}
|
|
341
392
|
|
|
342
393
|
void git_net_url_swap(git_net_url *a, git_net_url *b)
|
|
@@ -350,6 +401,10 @@ void git_net_url_swap(git_net_url *a, git_net_url *b)
|
|
|
350
401
|
|
|
351
402
|
int git_net_url_fmt(git_buf *buf, git_net_url *url)
|
|
352
403
|
{
|
|
404
|
+
GIT_ASSERT_ARG(url);
|
|
405
|
+
GIT_ASSERT_ARG(url->scheme);
|
|
406
|
+
GIT_ASSERT_ARG(url->host);
|
|
407
|
+
|
|
353
408
|
git_buf_puts(buf, url->scheme);
|
|
354
409
|
git_buf_puts(buf, "://");
|
|
355
410
|
|
|
@@ -393,6 +448,80 @@ int git_net_url_fmt_path(git_buf *buf, git_net_url *url)
|
|
|
393
448
|
return git_buf_oom(buf) ? -1 : 0;
|
|
394
449
|
}
|
|
395
450
|
|
|
451
|
+
static bool matches_pattern(
|
|
452
|
+
git_net_url *url,
|
|
453
|
+
const char *pattern,
|
|
454
|
+
size_t pattern_len)
|
|
455
|
+
{
|
|
456
|
+
const char *domain, *port = NULL, *colon;
|
|
457
|
+
size_t host_len, domain_len, port_len = 0, wildcard = 0;
|
|
458
|
+
|
|
459
|
+
GIT_UNUSED(url);
|
|
460
|
+
GIT_UNUSED(pattern);
|
|
461
|
+
|
|
462
|
+
if (!pattern_len)
|
|
463
|
+
return false;
|
|
464
|
+
else if (pattern_len == 1 && pattern[0] == '*')
|
|
465
|
+
return true;
|
|
466
|
+
else if (pattern_len > 1 && pattern[0] == '*' && pattern[1] == '.')
|
|
467
|
+
wildcard = 2;
|
|
468
|
+
else if (pattern[0] == '.')
|
|
469
|
+
wildcard = 1;
|
|
470
|
+
|
|
471
|
+
domain = pattern + wildcard;
|
|
472
|
+
domain_len = pattern_len - wildcard;
|
|
473
|
+
|
|
474
|
+
if ((colon = memchr(domain, ':', domain_len)) != NULL) {
|
|
475
|
+
domain_len = colon - domain;
|
|
476
|
+
port = colon + 1;
|
|
477
|
+
port_len = pattern_len - wildcard - domain_len - 1;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
/* A pattern's port *must* match if it's specified */
|
|
481
|
+
if (port_len && git__strlcmp(url->port, port, port_len) != 0)
|
|
482
|
+
return false;
|
|
483
|
+
|
|
484
|
+
/* No wildcard? Host must match exactly. */
|
|
485
|
+
if (!wildcard)
|
|
486
|
+
return !git__strlcmp(url->host, domain, domain_len);
|
|
487
|
+
|
|
488
|
+
/* Wildcard: ensure there's (at least) a suffix match */
|
|
489
|
+
if ((host_len = strlen(url->host)) < domain_len ||
|
|
490
|
+
memcmp(url->host + (host_len - domain_len), domain, domain_len))
|
|
491
|
+
return false;
|
|
492
|
+
|
|
493
|
+
/* The pattern is *.domain and the host is simply domain */
|
|
494
|
+
if (host_len == domain_len)
|
|
495
|
+
return true;
|
|
496
|
+
|
|
497
|
+
/* The pattern is *.domain and the host is foo.domain */
|
|
498
|
+
return (url->host[host_len - domain_len - 1] == '.');
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
bool git_net_url_matches_pattern(git_net_url *url, const char *pattern)
|
|
502
|
+
{
|
|
503
|
+
return matches_pattern(url, pattern, strlen(pattern));
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
bool git_net_url_matches_pattern_list(
|
|
507
|
+
git_net_url *url,
|
|
508
|
+
const char *pattern_list)
|
|
509
|
+
{
|
|
510
|
+
const char *pattern, *pattern_end, *sep;
|
|
511
|
+
|
|
512
|
+
for (pattern = pattern_list;
|
|
513
|
+
pattern && *pattern;
|
|
514
|
+
pattern = sep ? sep + 1 : NULL) {
|
|
515
|
+
sep = strchr(pattern, ',');
|
|
516
|
+
pattern_end = sep ? sep : strchr(pattern, '\0');
|
|
517
|
+
|
|
518
|
+
if (matches_pattern(url, pattern, (pattern_end - pattern)))
|
|
519
|
+
return true;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
return false;
|
|
523
|
+
}
|
|
524
|
+
|
|
396
525
|
void git_net_url_dispose(git_net_url *url)
|
|
397
526
|
{
|
|
398
527
|
if (url->username)
|
data/vendor/libgit2/src/net.h
CHANGED
|
@@ -21,6 +21,9 @@ typedef struct git_net_url {
|
|
|
21
21
|
|
|
22
22
|
#define GIT_NET_URL_INIT { NULL }
|
|
23
23
|
|
|
24
|
+
/** Duplicate a URL */
|
|
25
|
+
extern int git_net_url_dup(git_net_url *out, git_net_url *in);
|
|
26
|
+
|
|
24
27
|
/** Parses a string containing a URL into a structure. */
|
|
25
28
|
extern int git_net_url_parse(git_net_url *url, const char *str);
|
|
26
29
|
|
|
@@ -33,8 +36,11 @@ extern int git_net_url_joinpath(
|
|
|
33
36
|
/** Ensures that a URL is minimally valid (contains a host, port and path) */
|
|
34
37
|
extern bool git_net_url_valid(git_net_url *url);
|
|
35
38
|
|
|
36
|
-
/** Returns
|
|
37
|
-
extern
|
|
39
|
+
/** Returns true if the URL is on the default port. */
|
|
40
|
+
extern bool git_net_url_is_default_port(git_net_url *url);
|
|
41
|
+
|
|
42
|
+
/** Returns true if the host portion of the URL is an ipv6 address. */
|
|
43
|
+
extern bool git_net_url_is_ipv6(git_net_url *url);
|
|
38
44
|
|
|
39
45
|
/* Applies a redirect to the URL with a git-aware service suffix. */
|
|
40
46
|
extern int git_net_url_apply_redirect(
|
|
@@ -51,6 +57,14 @@ extern int git_net_url_fmt(git_buf *out, git_net_url *url);
|
|
|
51
57
|
/** Place the path and query string into the given buffer. */
|
|
52
58
|
extern int git_net_url_fmt_path(git_buf *buf, git_net_url *url);
|
|
53
59
|
|
|
60
|
+
/** Determines if the url matches given pattern or pattern list */
|
|
61
|
+
extern bool git_net_url_matches_pattern(
|
|
62
|
+
git_net_url *url,
|
|
63
|
+
const char *pattern);
|
|
64
|
+
extern bool git_net_url_matches_pattern_list(
|
|
65
|
+
git_net_url *url,
|
|
66
|
+
const char *pattern_list);
|
|
67
|
+
|
|
54
68
|
/** Disposes the contents of the structure. */
|
|
55
69
|
extern void git_net_url_dispose(git_net_url *url);
|
|
56
70
|
|
data/vendor/libgit2/src/netops.c
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
#include "posix.h"
|
|
14
14
|
#include "buffer.h"
|
|
15
15
|
#include "http_parser.h"
|
|
16
|
-
#include "
|
|
16
|
+
#include "runtime.h"
|
|
17
17
|
|
|
18
18
|
int gitno_recv(gitno_buffer *buf)
|
|
19
19
|
{
|
|
@@ -61,18 +61,20 @@ void gitno_buffer_setup_fromstream(git_stream *st, gitno_buffer *buf, char *data
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
/* Consume up to ptr and move the rest of the buffer to the beginning */
|
|
64
|
-
|
|
64
|
+
int gitno_consume(gitno_buffer *buf, const char *ptr)
|
|
65
65
|
{
|
|
66
66
|
size_t consumed;
|
|
67
67
|
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
GIT_ASSERT(ptr - buf->data >= 0);
|
|
69
|
+
GIT_ASSERT(ptr - buf->data <= (int) buf->len);
|
|
70
70
|
|
|
71
71
|
consumed = ptr - buf->data;
|
|
72
72
|
|
|
73
73
|
memmove(buf->data, ptr, buf->offset - consumed);
|
|
74
74
|
memset(buf->data + buf->offset, 0x0, buf->len - buf->offset);
|
|
75
75
|
buf->offset -= consumed;
|
|
76
|
+
|
|
77
|
+
return 0;
|
|
76
78
|
}
|
|
77
79
|
|
|
78
80
|
/* Consume const bytes and move the rest of the buffer to the beginning */
|
data/vendor/libgit2/src/netops.h
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#include "net.h"
|
|
15
15
|
|
|
16
16
|
#ifdef GIT_OPENSSL
|
|
17
|
-
# include
|
|
17
|
+
# include "streams/openssl.h"
|
|
18
18
|
#endif
|
|
19
19
|
|
|
20
20
|
typedef struct gitno_ssl {
|
|
@@ -62,7 +62,7 @@ void gitno_buffer_setup_fromstream(git_stream *st, gitno_buffer *buf, char *data
|
|
|
62
62
|
void gitno_buffer_setup_callback(gitno_buffer *buf, char *data, size_t len, int (*recv)(gitno_buffer *buf), void *cb_data);
|
|
63
63
|
int gitno_recv(gitno_buffer *buf);
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
int gitno_consume(gitno_buffer *buf, const char *ptr);
|
|
66
66
|
void gitno_consume_n(gitno_buffer *buf, size_t cons);
|
|
67
67
|
|
|
68
68
|
#endif
|
data/vendor/libgit2/src/notes.c
CHANGED
|
@@ -627,11 +627,11 @@ int git_note_default_ref(git_buf *out, git_repository *repo)
|
|
|
627
627
|
char *default_ref;
|
|
628
628
|
int error;
|
|
629
629
|
|
|
630
|
-
|
|
630
|
+
GIT_ASSERT_ARG(out);
|
|
631
|
+
GIT_ASSERT_ARG(repo);
|
|
631
632
|
|
|
632
|
-
git_buf_sanitize(out)
|
|
633
|
-
|
|
634
|
-
if ((error = note_get_default_ref(&default_ref, repo)) < 0)
|
|
633
|
+
if ((error = git_buf_sanitize(out)) < 0 ||
|
|
634
|
+
(error = note_get_default_ref(&default_ref, repo)) < 0)
|
|
635
635
|
return error;
|
|
636
636
|
|
|
637
637
|
git_buf_attach(out, default_ref, strlen(default_ref));
|
|
@@ -640,25 +640,25 @@ int git_note_default_ref(git_buf *out, git_repository *repo)
|
|
|
640
640
|
|
|
641
641
|
const git_signature *git_note_committer(const git_note *note)
|
|
642
642
|
{
|
|
643
|
-
|
|
643
|
+
GIT_ASSERT_ARG_WITH_RETVAL(note, NULL);
|
|
644
644
|
return note->committer;
|
|
645
645
|
}
|
|
646
646
|
|
|
647
647
|
const git_signature *git_note_author(const git_note *note)
|
|
648
648
|
{
|
|
649
|
-
|
|
649
|
+
GIT_ASSERT_ARG_WITH_RETVAL(note, NULL);
|
|
650
650
|
return note->author;
|
|
651
651
|
}
|
|
652
652
|
|
|
653
|
-
const char *
|
|
653
|
+
const char *git_note_message(const git_note *note)
|
|
654
654
|
{
|
|
655
|
-
|
|
655
|
+
GIT_ASSERT_ARG_WITH_RETVAL(note, NULL);
|
|
656
656
|
return note->message;
|
|
657
657
|
}
|
|
658
658
|
|
|
659
|
-
const git_oid *
|
|
659
|
+
const git_oid *git_note_id(const git_note *note)
|
|
660
660
|
{
|
|
661
|
-
|
|
661
|
+
GIT_ASSERT_ARG_WITH_RETVAL(note, NULL);
|
|
662
662
|
return ¬e->id;
|
|
663
663
|
}
|
|
664
664
|
|
data/vendor/libgit2/src/object.c
CHANGED
|
@@ -67,7 +67,7 @@ int git_object__from_raw(
|
|
|
67
67
|
size_t object_size;
|
|
68
68
|
int error;
|
|
69
69
|
|
|
70
|
-
|
|
70
|
+
GIT_ASSERT_ARG(object_out);
|
|
71
71
|
*object_out = NULL;
|
|
72
72
|
|
|
73
73
|
/* Validate type match */
|
|
@@ -86,11 +86,12 @@ int git_object__from_raw(
|
|
|
86
86
|
GIT_ERROR_CHECK_ALLOC(object);
|
|
87
87
|
object->cached.flags = GIT_CACHE_STORE_PARSED;
|
|
88
88
|
object->cached.type = type;
|
|
89
|
-
git_odb_hash(&object->cached.oid, data, size, type)
|
|
89
|
+
if ((error = git_odb_hash(&object->cached.oid, data, size, type)) < 0)
|
|
90
|
+
return error;
|
|
90
91
|
|
|
91
92
|
/* Parse raw object data */
|
|
92
93
|
def = &git_objects_table[type];
|
|
93
|
-
|
|
94
|
+
GIT_ASSERT(def->free && def->parse_raw);
|
|
94
95
|
|
|
95
96
|
if ((error = def->parse_raw(object, data, size)) < 0) {
|
|
96
97
|
def->free(object);
|
|
@@ -114,7 +115,7 @@ int git_object__from_odb_object(
|
|
|
114
115
|
git_object_def *def;
|
|
115
116
|
git_object *object = NULL;
|
|
116
117
|
|
|
117
|
-
|
|
118
|
+
GIT_ASSERT_ARG(object_out);
|
|
118
119
|
*object_out = NULL;
|
|
119
120
|
|
|
120
121
|
/* Validate type match */
|
|
@@ -140,7 +141,7 @@ int git_object__from_odb_object(
|
|
|
140
141
|
|
|
141
142
|
/* Parse raw object data */
|
|
142
143
|
def = &git_objects_table[odb_obj->cached.type];
|
|
143
|
-
|
|
144
|
+
GIT_ASSERT(def->free && def->parse);
|
|
144
145
|
|
|
145
146
|
if ((error = def->parse(object, odb_obj)) < 0)
|
|
146
147
|
def->free(object);
|
|
@@ -173,7 +174,9 @@ int git_object_lookup_prefix(
|
|
|
173
174
|
git_odb_object *odb_obj = NULL;
|
|
174
175
|
int error = 0;
|
|
175
176
|
|
|
176
|
-
|
|
177
|
+
GIT_ASSERT_ARG(repo);
|
|
178
|
+
GIT_ASSERT_ARG(object_out);
|
|
179
|
+
GIT_ASSERT_ARG(id);
|
|
177
180
|
|
|
178
181
|
if (len < GIT_OID_MINPREFIXLEN) {
|
|
179
182
|
git_error_set(GIT_ERROR_OBJECT, "ambiguous lookup - OID prefix is too short");
|
|
@@ -210,7 +213,7 @@ int git_object_lookup_prefix(
|
|
|
210
213
|
} else if (cached->flags == GIT_CACHE_STORE_RAW) {
|
|
211
214
|
odb_obj = (git_odb_object *)cached;
|
|
212
215
|
} else {
|
|
213
|
-
|
|
216
|
+
GIT_ASSERT(!"Wrong caching type in the global object cache");
|
|
214
217
|
}
|
|
215
218
|
} else {
|
|
216
219
|
/* Object was not found in the cache, let's explore the backends.
|
|
@@ -262,19 +265,19 @@ void git_object_free(git_object *object)
|
|
|
262
265
|
|
|
263
266
|
const git_oid *git_object_id(const git_object *obj)
|
|
264
267
|
{
|
|
265
|
-
|
|
268
|
+
GIT_ASSERT_ARG_WITH_RETVAL(obj, NULL);
|
|
266
269
|
return &obj->cached.oid;
|
|
267
270
|
}
|
|
268
271
|
|
|
269
272
|
git_object_t git_object_type(const git_object *obj)
|
|
270
273
|
{
|
|
271
|
-
|
|
274
|
+
GIT_ASSERT_ARG_WITH_RETVAL(obj, GIT_OBJECT_INVALID);
|
|
272
275
|
return obj->cached.type;
|
|
273
276
|
}
|
|
274
277
|
|
|
275
278
|
git_repository *git_object_owner(const git_object *obj)
|
|
276
279
|
{
|
|
277
|
-
|
|
280
|
+
GIT_ASSERT_ARG_WITH_RETVAL(obj, NULL);
|
|
278
281
|
return obj->repo;
|
|
279
282
|
}
|
|
280
283
|
|
|
@@ -395,9 +398,10 @@ int git_object_peel(
|
|
|
395
398
|
git_object *source, *deref = NULL;
|
|
396
399
|
int error;
|
|
397
400
|
|
|
398
|
-
|
|
401
|
+
GIT_ASSERT_ARG(object);
|
|
402
|
+
GIT_ASSERT_ARG(peeled);
|
|
399
403
|
|
|
400
|
-
|
|
404
|
+
GIT_ASSERT_ARG(target_type == GIT_OBJECT_TAG ||
|
|
401
405
|
target_type == GIT_OBJECT_COMMIT ||
|
|
402
406
|
target_type == GIT_OBJECT_TREE ||
|
|
403
407
|
target_type == GIT_OBJECT_BLOB ||
|
|
@@ -460,7 +464,9 @@ int git_object_lookup_bypath(
|
|
|
460
464
|
git_tree *tree = NULL;
|
|
461
465
|
git_tree_entry *entry = NULL;
|
|
462
466
|
|
|
463
|
-
|
|
467
|
+
GIT_ASSERT_ARG(out);
|
|
468
|
+
GIT_ASSERT_ARG(treeish);
|
|
469
|
+
GIT_ASSERT_ARG(path);
|
|
464
470
|
|
|
465
471
|
if ((error = git_object_peel((git_object**)&tree, treeish, GIT_OBJECT_TREE)) < 0 ||
|
|
466
472
|
(error = git_tree_entry_bypath(&entry, tree, path)) < 0)
|
|
@@ -492,9 +498,12 @@ int git_object_short_id(git_buf *out, const git_object *obj)
|
|
|
492
498
|
git_oid id = {{0}};
|
|
493
499
|
git_odb *odb;
|
|
494
500
|
|
|
495
|
-
|
|
501
|
+
GIT_ASSERT_ARG(out);
|
|
502
|
+
GIT_ASSERT_ARG(obj);
|
|
503
|
+
|
|
504
|
+
if ((error = git_buf_sanitize(out)) < 0)
|
|
505
|
+
return error;
|
|
496
506
|
|
|
497
|
-
git_buf_sanitize(out);
|
|
498
507
|
repo = git_object_owner(obj);
|
|
499
508
|
|
|
500
509
|
if ((error = git_repository__configmap_lookup(&len, repo, GIT_CONFIGMAP_ABBREV)) < 0)
|