rugged 0.27.7 → 0.27.10
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/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +99 -51
- data/vendor/libgit2/COPYING +28 -0
- data/vendor/libgit2/cmake/Modules/AddCFlagIfSupported.cmake +15 -1
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.c.in +29 -0
- data/vendor/libgit2/cmake/Modules/CheckPrototypeDefinition.cmake +96 -0
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +9 -8
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +28 -0
- data/vendor/libgit2/cmake/Modules/FindIconv.cmake +11 -6
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +38 -0
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +37 -0
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +6 -0
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +110 -0
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +53 -0
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +124 -0
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +66 -0
- data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +21 -0
- data/vendor/libgit2/deps/ntlmclient/compat.h +33 -0
- data/vendor/libgit2/deps/ntlmclient/crypt.h +64 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +120 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +145 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +18 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +130 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +21 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +1420 -0
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +174 -0
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +320 -0
- data/vendor/libgit2/deps/ntlmclient/unicode.h +36 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +445 -0
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +201 -0
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1257 -0
- data/vendor/libgit2/deps/ntlmclient/util.c +21 -0
- data/vendor/libgit2/deps/ntlmclient/util.h +14 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +140 -0
- data/vendor/libgit2/deps/pcre/COPYING +5 -0
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +22 -0
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +17 -0
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +58 -0
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +29 -0
- data/vendor/libgit2/deps/pcre/config.h.in +57 -0
- data/vendor/libgit2/deps/pcre/pcre.h +641 -0
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +319 -0
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +198 -0
- data/vendor/libgit2/deps/pcre/pcre_compile.c +9800 -0
- data/vendor/libgit2/deps/pcre/pcre_config.c +190 -0
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +3676 -0
- data/vendor/libgit2/deps/pcre/pcre_exec.c +7173 -0
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +245 -0
- data/vendor/libgit2/deps/pcre/pcre_get.c +669 -0
- data/vendor/libgit2/deps/pcre/pcre_globals.c +86 -0
- data/vendor/libgit2/deps/pcre/pcre_internal.h +2787 -0
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +11913 -0
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +156 -0
- data/vendor/libgit2/deps/pcre/pcre_newline.c +210 -0
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +94 -0
- data/vendor/libgit2/deps/pcre/pcre_printint.c +834 -0
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +92 -0
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +211 -0
- data/vendor/libgit2/deps/pcre/pcre_study.c +1686 -0
- data/vendor/libgit2/deps/pcre/pcre_tables.c +727 -0
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +3644 -0
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +301 -0
- data/vendor/libgit2/deps/pcre/pcre_version.c +98 -0
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +268 -0
- data/vendor/libgit2/deps/pcre/pcreposix.c +421 -0
- data/vendor/libgit2/deps/pcre/pcreposix.h +117 -0
- data/vendor/libgit2/deps/pcre/ucp.h +224 -0
- data/vendor/libgit2/deps/winhttp/COPYING.GPL +993 -0
- data/vendor/libgit2/deps/winhttp/COPYING.LGPL +502 -0
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +1 -0
- data/vendor/libgit2/deps/zlib/COPYING +27 -0
- data/vendor/libgit2/deps/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +0 -7
- data/vendor/libgit2/include/git2/annotated_commit.h +9 -0
- data/vendor/libgit2/include/git2/apply.h +149 -0
- data/vendor/libgit2/include/git2/attr.h +20 -13
- data/vendor/libgit2/include/git2/blame.h +4 -4
- data/vendor/libgit2/include/git2/blob.h +44 -12
- data/vendor/libgit2/include/git2/buffer.h +20 -26
- data/vendor/libgit2/include/git2/cert.h +135 -0
- data/vendor/libgit2/include/git2/checkout.h +53 -21
- data/vendor/libgit2/include/git2/cherrypick.h +3 -3
- data/vendor/libgit2/include/git2/clone.h +5 -5
- data/vendor/libgit2/include/git2/commit.h +25 -3
- data/vendor/libgit2/include/git2/common.h +35 -10
- data/vendor/libgit2/include/git2/config.h +29 -19
- data/vendor/libgit2/include/git2/cred.h +308 -0
- data/vendor/libgit2/include/git2/deprecated.h +493 -0
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +177 -135
- data/vendor/libgit2/include/git2/errors.h +53 -46
- data/vendor/libgit2/include/git2/filter.h +8 -0
- data/vendor/libgit2/include/git2/index.h +74 -52
- data/vendor/libgit2/include/git2/indexer.h +76 -6
- data/vendor/libgit2/include/git2/merge.h +25 -10
- data/vendor/libgit2/include/git2/net.h +0 -5
- data/vendor/libgit2/include/git2/notes.h +1 -1
- data/vendor/libgit2/include/git2/object.h +17 -29
- data/vendor/libgit2/include/git2/odb.h +12 -11
- data/vendor/libgit2/include/git2/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/oid.h +2 -2
- data/vendor/libgit2/include/git2/pack.h +14 -3
- data/vendor/libgit2/include/git2/proxy.h +5 -3
- data/vendor/libgit2/include/git2/rebase.h +46 -2
- data/vendor/libgit2/include/git2/refs.h +34 -16
- data/vendor/libgit2/include/git2/remote.h +111 -14
- data/vendor/libgit2/include/git2/repository.h +69 -34
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +7 -7
- data/vendor/libgit2/include/git2/signature.h +2 -2
- data/vendor/libgit2/include/git2/stash.h +5 -5
- data/vendor/libgit2/include/git2/status.h +26 -17
- data/vendor/libgit2/include/git2/submodule.h +23 -6
- data/vendor/libgit2/include/git2/sys/alloc.h +18 -18
- data/vendor/libgit2/include/git2/sys/commit.h +1 -1
- data/vendor/libgit2/include/git2/sys/config.h +13 -13
- data/vendor/libgit2/include/git2/sys/cred.h +90 -0
- data/vendor/libgit2/include/git2/sys/filter.h +6 -6
- data/vendor/libgit2/include/git2/sys/merge.h +3 -3
- data/vendor/libgit2/include/git2/sys/odb_backend.h +66 -22
- data/vendor/libgit2/include/git2/sys/path.h +14 -5
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +76 -40
- data/vendor/libgit2/include/git2/sys/repository.h +5 -1
- data/vendor/libgit2/include/git2/sys/stream.h +92 -12
- data/vendor/libgit2/include/git2/sys/transport.h +129 -83
- data/vendor/libgit2/include/git2/tag.h +13 -4
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +11 -311
- data/vendor/libgit2/include/git2/tree.h +4 -4
- data/vendor/libgit2/include/git2/types.h +25 -106
- data/vendor/libgit2/include/git2/version.h +3 -3
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/include/git2.h +4 -0
- data/vendor/libgit2/src/CMakeLists.txt +104 -235
- data/vendor/libgit2/src/alloc.c +14 -18
- data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +7 -8
- data/vendor/libgit2/src/{stdalloc.h → allocators/stdalloc.h} +4 -4
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +118 -0
- data/vendor/libgit2/src/{transports/cred.h → allocators/win32_crtdbg.h} +5 -4
- data/vendor/libgit2/src/annotated_commit.c +18 -11
- data/vendor/libgit2/src/apply.c +535 -28
- data/vendor/libgit2/src/apply.h +3 -1
- data/vendor/libgit2/src/array.h +2 -2
- data/vendor/libgit2/src/attr.c +77 -71
- data/vendor/libgit2/src/attr_file.c +203 -117
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +49 -51
- data/vendor/libgit2/src/attrcache.h +2 -1
- data/vendor/libgit2/src/blame.c +38 -18
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +29 -15
- data/vendor/libgit2/src/blob.c +123 -37
- data/vendor/libgit2/src/blob.h +19 -2
- data/vendor/libgit2/src/branch.c +47 -23
- data/vendor/libgit2/src/buf_text.c +7 -6
- data/vendor/libgit2/src/buffer.c +60 -53
- data/vendor/libgit2/src/cache.c +38 -45
- data/vendor/libgit2/src/cache.h +3 -3
- data/vendor/libgit2/src/cc-compat.h +20 -3
- data/vendor/libgit2/src/checkout.c +77 -67
- data/vendor/libgit2/src/cherrypick.c +12 -6
- data/vendor/libgit2/src/clone.c +36 -14
- data/vendor/libgit2/src/clone.h +4 -0
- data/vendor/libgit2/src/commit.c +103 -48
- data/vendor/libgit2/src/commit.h +7 -0
- data/vendor/libgit2/src/commit_list.c +36 -78
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +24 -90
- data/vendor/libgit2/src/config.c +203 -176
- data/vendor/libgit2/src/config.h +8 -20
- data/vendor/libgit2/src/config_backend.h +96 -0
- data/vendor/libgit2/src/config_cache.c +41 -35
- data/vendor/libgit2/src/config_entries.c +229 -0
- data/vendor/libgit2/src/config_entries.h +24 -0
- data/vendor/libgit2/src/config_file.c +422 -680
- data/vendor/libgit2/src/config_mem.c +220 -0
- data/vendor/libgit2/src/config_parse.c +96 -68
- data/vendor/libgit2/src/config_parse.h +15 -14
- data/vendor/libgit2/src/config_snapshot.c +206 -0
- data/vendor/libgit2/src/crlf.c +219 -196
- data/vendor/libgit2/src/delta.c +25 -18
- data/vendor/libgit2/src/describe.c +42 -41
- data/vendor/libgit2/src/diff.c +52 -67
- data/vendor/libgit2/src/diff.h +2 -1
- data/vendor/libgit2/src/diff_driver.c +44 -46
- data/vendor/libgit2/src/diff_file.c +16 -14
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +158 -103
- data/vendor/libgit2/src/diff_generate.h +3 -3
- data/vendor/libgit2/src/diff_parse.c +4 -4
- data/vendor/libgit2/src/diff_print.c +34 -22
- data/vendor/libgit2/src/diff_stats.c +22 -7
- data/vendor/libgit2/src/diff_tform.c +18 -16
- data/vendor/libgit2/src/diff_xdiff.c +3 -3
- data/vendor/libgit2/src/errors.c +51 -39
- data/vendor/libgit2/src/errors.h +81 -0
- data/vendor/libgit2/src/features.h.in +9 -3
- data/vendor/libgit2/src/fetch.c +8 -3
- data/vendor/libgit2/src/fetchhead.c +12 -12
- data/vendor/libgit2/src/filebuf.c +28 -32
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/filter.c +47 -33
- data/vendor/libgit2/src/filter.h +0 -10
- data/vendor/libgit2/src/{fileops.c → futils.c} +70 -63
- data/vendor/libgit2/src/{fileops.h → futils.h} +6 -6
- data/vendor/libgit2/src/global.c +35 -55
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/hash/sha1/collisiondetect.c +48 -0
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +19 -0
- data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +17 -17
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +19 -0
- data/vendor/libgit2/src/hash/{hash_generic.c → sha1/generic.c} +22 -10
- data/vendor/libgit2/src/hash/{hash_generic.h → sha1/generic.h} +4 -10
- data/vendor/libgit2/src/hash/{hash_mbedtls.c → sha1/mbedtls.c} +15 -7
- data/vendor/libgit2/src/hash/{hash_mbedtls.h → sha1/mbedtls.h} +6 -7
- data/vendor/libgit2/src/hash/sha1/openssl.c +59 -0
- data/vendor/libgit2/src/hash/sha1/openssl.h +19 -0
- data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.c +14 -3
- data/vendor/libgit2/src/hash/{hash_win32.c → sha1/win32.c} +47 -37
- data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
- data/vendor/libgit2/src/hash/sha1.h +38 -0
- data/vendor/libgit2/src/hash.c +61 -0
- data/vendor/libgit2/src/hash.h +20 -21
- data/vendor/libgit2/src/hashsig.c +5 -5
- data/vendor/libgit2/src/idxmap.c +107 -61
- data/vendor/libgit2/src/idxmap.h +153 -31
- data/vendor/libgit2/src/ignore.c +38 -42
- data/vendor/libgit2/src/index.c +264 -199
- data/vendor/libgit2/src/index.h +7 -1
- data/vendor/libgit2/src/indexer.c +338 -167
- data/vendor/libgit2/src/integer.h +71 -26
- data/vendor/libgit2/src/iterator.c +134 -62
- data/vendor/libgit2/src/iterator.h +15 -0
- data/vendor/libgit2/src/mailmap.c +8 -8
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +137 -93
- data/vendor/libgit2/src/merge_driver.c +11 -11
- data/vendor/libgit2/src/merge_file.c +2 -2
- data/vendor/libgit2/src/mwindow.c +24 -29
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/net.c +184 -0
- data/vendor/libgit2/src/net.h +36 -0
- data/vendor/libgit2/src/netops.c +55 -156
- data/vendor/libgit2/src/netops.h +3 -23
- data/vendor/libgit2/src/notes.c +14 -9
- data/vendor/libgit2/src/object.c +120 -69
- data/vendor/libgit2/src/object.h +22 -9
- data/vendor/libgit2/src/object_api.c +8 -8
- data/vendor/libgit2/src/odb.c +111 -88
- data/vendor/libgit2/src/odb.h +8 -7
- data/vendor/libgit2/src/odb_loose.c +58 -47
- data/vendor/libgit2/src/odb_mempack.c +21 -34
- data/vendor/libgit2/src/odb_pack.c +17 -13
- data/vendor/libgit2/src/offmap.c +53 -35
- data/vendor/libgit2/src/offmap.h +108 -21
- data/vendor/libgit2/src/oid.c +12 -7
- data/vendor/libgit2/src/oidmap.c +49 -47
- data/vendor/libgit2/src/oidmap.h +101 -24
- data/vendor/libgit2/src/pack-objects.c +87 -86
- data/vendor/libgit2/src/pack-objects.h +2 -8
- data/vendor/libgit2/src/pack.c +94 -96
- data/vendor/libgit2/src/pack.h +16 -18
- data/vendor/libgit2/src/parse.c +17 -4
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +3 -3
- data/vendor/libgit2/src/patch_generate.c +18 -18
- data/vendor/libgit2/src/patch_parse.c +147 -79
- data/vendor/libgit2/src/path.c +207 -62
- data/vendor/libgit2/src/path.h +14 -0
- data/vendor/libgit2/src/pathspec.c +18 -18
- data/vendor/libgit2/src/pool.c +26 -22
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +10 -10
- data/vendor/libgit2/src/posix.h +12 -1
- data/vendor/libgit2/src/proxy.c +8 -3
- data/vendor/libgit2/src/push.c +35 -29
- data/vendor/libgit2/src/push.h +2 -1
- data/vendor/libgit2/src/reader.c +265 -0
- data/vendor/libgit2/src/reader.h +107 -0
- data/vendor/libgit2/src/rebase.c +97 -38
- data/vendor/libgit2/src/refdb.c +15 -3
- data/vendor/libgit2/src/refdb_fs.c +318 -222
- data/vendor/libgit2/src/reflog.c +13 -15
- data/vendor/libgit2/src/refs.c +122 -89
- data/vendor/libgit2/src/refs.h +5 -3
- data/vendor/libgit2/src/refspec.c +27 -33
- data/vendor/libgit2/src/regexp.c +221 -0
- data/vendor/libgit2/src/regexp.h +97 -0
- data/vendor/libgit2/src/remote.c +229 -178
- data/vendor/libgit2/src/remote.h +11 -2
- data/vendor/libgit2/src/repository.c +227 -172
- data/vendor/libgit2/src/repository.h +52 -40
- data/vendor/libgit2/src/reset.c +7 -7
- data/vendor/libgit2/src/revert.c +11 -6
- data/vendor/libgit2/src/revparse.c +46 -46
- data/vendor/libgit2/src/revwalk.c +89 -54
- data/vendor/libgit2/src/revwalk.h +20 -0
- data/vendor/libgit2/src/settings.c +22 -9
- data/vendor/libgit2/src/signature.c +15 -13
- data/vendor/libgit2/src/sortedcache.c +22 -36
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +56 -76
- data/vendor/libgit2/src/status.c +27 -21
- data/vendor/libgit2/src/stream.h +17 -2
- data/vendor/libgit2/src/streams/mbedtls.c +100 -80
- data/vendor/libgit2/src/streams/mbedtls.h +5 -2
- data/vendor/libgit2/src/streams/openssl.c +93 -81
- data/vendor/libgit2/src/streams/openssl.h +5 -2
- data/vendor/libgit2/src/streams/registry.c +118 -0
- data/vendor/libgit2/src/streams/registry.h +19 -0
- data/vendor/libgit2/src/streams/socket.c +55 -30
- data/vendor/libgit2/src/streams/stransport.c +57 -32
- data/vendor/libgit2/src/streams/stransport.h +5 -0
- data/vendor/libgit2/src/streams/tls.c +48 -20
- data/vendor/libgit2/src/streams/tls.h +12 -4
- data/vendor/libgit2/src/strmap.c +47 -74
- data/vendor/libgit2/src/strmap.h +108 -33
- data/vendor/libgit2/src/submodule.c +190 -169
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +25 -15
- data/vendor/libgit2/src/tag.c +39 -26
- data/vendor/libgit2/src/tag.h +2 -1
- data/vendor/libgit2/src/trace.c +2 -2
- data/vendor/libgit2/src/trace.h +2 -2
- data/vendor/libgit2/src/trailer.c +46 -32
- data/vendor/libgit2/src/transaction.c +30 -29
- data/vendor/libgit2/src/transport.c +3 -3
- data/vendor/libgit2/src/transports/auth.c +14 -10
- data/vendor/libgit2/src/transports/auth.h +10 -3
- data/vendor/libgit2/src/transports/auth_negotiate.c +31 -16
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/auth_ntlm.c +223 -0
- data/vendor/libgit2/src/transports/auth_ntlm.h +35 -0
- data/vendor/libgit2/src/transports/cred.c +24 -24
- data/vendor/libgit2/src/transports/git.c +25 -30
- data/vendor/libgit2/src/transports/http.c +871 -335
- data/vendor/libgit2/src/transports/http.h +2 -0
- data/vendor/libgit2/src/transports/local.c +28 -28
- data/vendor/libgit2/src/transports/smart.c +64 -46
- data/vendor/libgit2/src/transports/smart.h +5 -6
- data/vendor/libgit2/src/transports/smart_pkt.c +162 -151
- data/vendor/libgit2/src/transports/smart_protocol.c +64 -94
- data/vendor/libgit2/src/transports/ssh.c +76 -65
- data/vendor/libgit2/src/transports/winhttp.c +328 -319
- data/vendor/libgit2/src/tree-cache.c +21 -14
- data/vendor/libgit2/src/tree.c +119 -112
- data/vendor/libgit2/src/tree.h +1 -0
- data/vendor/libgit2/src/unix/map.c +3 -3
- data/vendor/libgit2/src/unix/posix.h +1 -11
- data/vendor/libgit2/src/userdiff.h +3 -1
- data/vendor/libgit2/src/util.c +154 -93
- data/vendor/libgit2/src/util.h +19 -23
- data/vendor/libgit2/src/vector.c +15 -10
- data/vendor/libgit2/src/wildmatch.c +320 -0
- data/vendor/libgit2/src/wildmatch.h +23 -0
- data/vendor/libgit2/src/win32/dir.c +3 -3
- data/vendor/libgit2/src/win32/findfile.c +1 -1
- data/vendor/libgit2/src/win32/map.c +9 -11
- data/vendor/libgit2/src/win32/msvc-compat.h +6 -0
- data/vendor/libgit2/src/win32/path_w32.c +113 -9
- data/vendor/libgit2/src/win32/path_w32.h +18 -29
- data/vendor/libgit2/src/win32/posix.h +1 -4
- data/vendor/libgit2/src/win32/posix_w32.c +69 -44
- data/vendor/libgit2/src/win32/precompiled.h +0 -2
- data/vendor/libgit2/src/win32/thread.c +5 -10
- data/vendor/libgit2/src/win32/w32_buffer.c +9 -5
- data/vendor/libgit2/src/win32/w32_common.h +39 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +2 -95
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
- data/vendor/libgit2/src/win32/w32_stack.c +6 -11
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +27 -64
- data/vendor/libgit2/src/win32/w32_util.h +5 -49
- data/vendor/libgit2/src/worktree.c +44 -30
- data/vendor/libgit2/src/xdiff/xdiffi.c +5 -5
- data/vendor/libgit2/src/xdiff/xhistogram.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +27 -15
- data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
- data/vendor/libgit2/src/zstream.c +4 -4
- metadata +115 -38
- data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
- data/vendor/libgit2/deps/regex/config.h +0 -7
- data/vendor/libgit2/deps/regex/regcomp.c +0 -3857
- data/vendor/libgit2/deps/regex/regex.c +0 -92
- data/vendor/libgit2/deps/regex/regex.h +0 -582
- data/vendor/libgit2/deps/regex/regex_internal.c +0 -1744
- data/vendor/libgit2/deps/regex/regex_internal.h +0 -819
- data/vendor/libgit2/deps/regex/regexec.c +0 -4369
- data/vendor/libgit2/include/git2/inttypes.h +0 -309
- data/vendor/libgit2/include/git2/sys/time.h +0 -31
- data/vendor/libgit2/libgit2.pc.in +0 -13
- data/vendor/libgit2/src/config_file.h +0 -73
- data/vendor/libgit2/src/fnmatch.c +0 -248
- data/vendor/libgit2/src/fnmatch.h +0 -48
- data/vendor/libgit2/src/hash/hash_collisiondetect.h +0 -47
- data/vendor/libgit2/src/hash/hash_openssl.h +0 -59
- data/vendor/libgit2/src/streams/curl.c +0 -385
- data/vendor/libgit2/src/streams/curl.h +0 -17
- /data/vendor/libgit2/deps/http-parser/{LICENSE-MIT → COPYING} +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/sha1.h +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.c +0 -0
- /data/vendor/libgit2/src/hash/{sha1dc → sha1/sha1dc}/ubc_check.h +0 -0
|
@@ -83,7 +83,7 @@ static int add_ref(transport_local *t, const char *name)
|
|
|
83
83
|
if (!strcmp(name, GIT_HEAD_FILE) && error == GIT_ENOTFOUND) {
|
|
84
84
|
/* This is actually okay. Empty repos often have a HEAD that
|
|
85
85
|
* points to a nonexistent "refs/heads/master". */
|
|
86
|
-
|
|
86
|
+
git_error_clear();
|
|
87
87
|
return 0;
|
|
88
88
|
}
|
|
89
89
|
return error;
|
|
@@ -93,16 +93,16 @@ static int add_ref(transport_local *t, const char *name)
|
|
|
93
93
|
git_reference_free(resolved);
|
|
94
94
|
|
|
95
95
|
head = git__calloc(1, sizeof(git_remote_head));
|
|
96
|
-
|
|
96
|
+
GIT_ERROR_CHECK_ALLOC(head);
|
|
97
97
|
|
|
98
98
|
head->name = git__strdup(name);
|
|
99
|
-
|
|
99
|
+
GIT_ERROR_CHECK_ALLOC(head->name);
|
|
100
100
|
|
|
101
101
|
git_oid_cpy(&head->oid, &obj_id);
|
|
102
102
|
|
|
103
|
-
if (git_reference_type(ref) ==
|
|
103
|
+
if (git_reference_type(ref) == GIT_REFERENCE_SYMBOLIC) {
|
|
104
104
|
head->symref_target = git__strdup(git_reference_symbolic_target(ref));
|
|
105
|
-
|
|
105
|
+
GIT_ERROR_CHECK_ALLOC(head->symref_target);
|
|
106
106
|
}
|
|
107
107
|
git_reference_free(ref);
|
|
108
108
|
|
|
@@ -115,14 +115,14 @@ static int add_ref(transport_local *t, const char *name)
|
|
|
115
115
|
if (git__prefixcmp(name, GIT_REFS_TAGS_DIR))
|
|
116
116
|
return 0;
|
|
117
117
|
|
|
118
|
-
if ((error = git_object_lookup(&obj, t->repo, &head->oid,
|
|
118
|
+
if ((error = git_object_lookup(&obj, t->repo, &head->oid, GIT_OBJECT_ANY)) < 0)
|
|
119
119
|
return error;
|
|
120
120
|
|
|
121
121
|
head = NULL;
|
|
122
122
|
|
|
123
123
|
/* If it's not an annotated tag, or if we're mocking
|
|
124
124
|
* git-receive-pack, just get out */
|
|
125
|
-
if (git_object_type(obj) !=
|
|
125
|
+
if (git_object_type(obj) != GIT_OBJECT_TAG ||
|
|
126
126
|
t->direction != GIT_DIRECTION_FETCH) {
|
|
127
127
|
git_object_free(obj);
|
|
128
128
|
return 0;
|
|
@@ -130,7 +130,7 @@ static int add_ref(transport_local *t, const char *name)
|
|
|
130
130
|
|
|
131
131
|
/* And if it's a tag, peel it, and add it to the list */
|
|
132
132
|
head = git__calloc(1, sizeof(git_remote_head));
|
|
133
|
-
|
|
133
|
+
GIT_ERROR_CHECK_ALLOC(head);
|
|
134
134
|
|
|
135
135
|
if (git_buf_join(&buf, 0, name, peeled) < 0) {
|
|
136
136
|
free_head(head);
|
|
@@ -222,7 +222,7 @@ static int local_connect(
|
|
|
222
222
|
free_heads(&t->refs);
|
|
223
223
|
|
|
224
224
|
t->url = git__strdup(url);
|
|
225
|
-
|
|
225
|
+
GIT_ERROR_CHECK_ALLOC(t->url);
|
|
226
226
|
t->direction = direction;
|
|
227
227
|
t->flags = flags;
|
|
228
228
|
|
|
@@ -255,7 +255,7 @@ static int local_ls(const git_remote_head ***out, size_t *size, git_transport *t
|
|
|
255
255
|
transport_local *t = (transport_local *)transport;
|
|
256
256
|
|
|
257
257
|
if (!t->have_refs) {
|
|
258
|
-
|
|
258
|
+
git_error_set(GIT_ERROR_NET, "the transport has not yet loaded the refs");
|
|
259
259
|
return -1;
|
|
260
260
|
}
|
|
261
261
|
|
|
@@ -288,7 +288,7 @@ static int local_negotiate_fetch(
|
|
|
288
288
|
else if (error != GIT_ENOTFOUND)
|
|
289
289
|
return error;
|
|
290
290
|
else
|
|
291
|
-
|
|
291
|
+
git_error_clear();
|
|
292
292
|
git_object_free(obj);
|
|
293
293
|
}
|
|
294
294
|
|
|
@@ -309,7 +309,7 @@ static int local_push_update_remote_ref(
|
|
|
309
309
|
if (lref[0] != '\0') {
|
|
310
310
|
/* Create or update a ref */
|
|
311
311
|
error = git_reference_create(NULL, remote_repo, rref, loid,
|
|
312
|
-
!
|
|
312
|
+
!git_oid_is_zero(roid), NULL);
|
|
313
313
|
} else {
|
|
314
314
|
/* Delete a ref */
|
|
315
315
|
if ((error = git_reference_lookup(&remote_ref, remote_repo, rref)) < 0) {
|
|
@@ -325,7 +325,7 @@ static int local_push_update_remote_ref(
|
|
|
325
325
|
return error;
|
|
326
326
|
}
|
|
327
327
|
|
|
328
|
-
static int transfer_to_push_transfer(const
|
|
328
|
+
static int transfer_to_push_transfer(const git_indexer_progress *stats, void *payload)
|
|
329
329
|
{
|
|
330
330
|
const git_remote_callbacks *cbs = payload;
|
|
331
331
|
|
|
@@ -374,7 +374,7 @@ static int local_push(
|
|
|
374
374
|
but we forbid all pushes just in case */
|
|
375
375
|
if (!remote_repo->is_bare) {
|
|
376
376
|
error = GIT_EBAREREPO;
|
|
377
|
-
|
|
377
|
+
git_error_set(GIT_ERROR_INVALID, "local push doesn't (yet) support pushing to non-bare repos.");
|
|
378
378
|
goto on_error;
|
|
379
379
|
}
|
|
380
380
|
|
|
@@ -418,7 +418,7 @@ static int local_push(
|
|
|
418
418
|
status->msg = git__strdup("Remote branch not found to delete");
|
|
419
419
|
break;
|
|
420
420
|
default:
|
|
421
|
-
last =
|
|
421
|
+
last = git_error_last();
|
|
422
422
|
|
|
423
423
|
if (last && last->message)
|
|
424
424
|
status->msg = git__strdup(last->message);
|
|
@@ -460,8 +460,8 @@ on_error:
|
|
|
460
460
|
}
|
|
461
461
|
|
|
462
462
|
typedef struct foreach_data {
|
|
463
|
-
|
|
464
|
-
|
|
463
|
+
git_indexer_progress *stats;
|
|
464
|
+
git_indexer_progress_cb progress_cb;
|
|
465
465
|
void *progress_payload;
|
|
466
466
|
git_odb_writepack *writepack;
|
|
467
467
|
} foreach_data;
|
|
@@ -501,7 +501,7 @@ static int local_counting(int stage, unsigned int current, unsigned int total, v
|
|
|
501
501
|
if (git_buf_oom(&progress_info))
|
|
502
502
|
return -1;
|
|
503
503
|
|
|
504
|
-
error = t->progress_cb(git_buf_cstr(&progress_info), git_buf_len(&progress_info), t->message_cb_payload);
|
|
504
|
+
error = t->progress_cb(git_buf_cstr(&progress_info), (int)git_buf_len(&progress_info), t->message_cb_payload);
|
|
505
505
|
git_buf_dispose(&progress_info);
|
|
506
506
|
|
|
507
507
|
return error;
|
|
@@ -512,7 +512,7 @@ static int foreach_reference_cb(git_reference *reference, void *payload)
|
|
|
512
512
|
git_revwalk *walk = (git_revwalk *)payload;
|
|
513
513
|
int error;
|
|
514
514
|
|
|
515
|
-
if (git_reference_type(reference) !=
|
|
515
|
+
if (git_reference_type(reference) != GIT_REFERENCE_DIRECT) {
|
|
516
516
|
git_reference_free(reference);
|
|
517
517
|
return 0;
|
|
518
518
|
}
|
|
@@ -520,8 +520,8 @@ static int foreach_reference_cb(git_reference *reference, void *payload)
|
|
|
520
520
|
error = git_revwalk_hide(walk, git_reference_target(reference));
|
|
521
521
|
/* The reference is in the local repository, so the target may not
|
|
522
522
|
* exist on the remote. It also may not be a commit. */
|
|
523
|
-
if (error == GIT_ENOTFOUND || error ==
|
|
524
|
-
|
|
523
|
+
if (error == GIT_ENOTFOUND || error == GIT_ERROR_INVALID) {
|
|
524
|
+
git_error_clear();
|
|
525
525
|
error = 0;
|
|
526
526
|
}
|
|
527
527
|
|
|
@@ -533,8 +533,8 @@ static int foreach_reference_cb(git_reference *reference, void *payload)
|
|
|
533
533
|
static int local_download_pack(
|
|
534
534
|
git_transport *transport,
|
|
535
535
|
git_repository *repo,
|
|
536
|
-
|
|
537
|
-
|
|
536
|
+
git_indexer_progress *stats,
|
|
537
|
+
git_indexer_progress_cb progress_cb,
|
|
538
538
|
void *progress_payload)
|
|
539
539
|
{
|
|
540
540
|
transport_local *t = (transport_local*)transport;
|
|
@@ -563,10 +563,10 @@ static int local_download_pack(
|
|
|
563
563
|
|
|
564
564
|
git_vector_foreach(&t->refs, i, rhead) {
|
|
565
565
|
git_object *obj;
|
|
566
|
-
if ((error = git_object_lookup(&obj, t->repo, &rhead->oid,
|
|
566
|
+
if ((error = git_object_lookup(&obj, t->repo, &rhead->oid, GIT_OBJECT_ANY)) < 0)
|
|
567
567
|
goto cleanup;
|
|
568
568
|
|
|
569
|
-
if (git_object_type(obj) ==
|
|
569
|
+
if (git_object_type(obj) == GIT_OBJECT_COMMIT) {
|
|
570
570
|
/* Revwalker includes only wanted commits */
|
|
571
571
|
error = git_revwalk_push(walk, &rhead->oid);
|
|
572
572
|
} else {
|
|
@@ -588,7 +588,7 @@ static int local_download_pack(
|
|
|
588
588
|
goto cleanup;
|
|
589
589
|
|
|
590
590
|
if (t->progress_cb &&
|
|
591
|
-
(error = t->progress_cb(git_buf_cstr(&progress_info), git_buf_len(&progress_info), t->message_cb_payload)) < 0)
|
|
591
|
+
(error = t->progress_cb(git_buf_cstr(&progress_info), (int)git_buf_len(&progress_info), t->message_cb_payload)) < 0)
|
|
592
592
|
goto cleanup;
|
|
593
593
|
|
|
594
594
|
/* Walk the objects, building a packfile */
|
|
@@ -602,7 +602,7 @@ static int local_download_pack(
|
|
|
602
602
|
goto cleanup;
|
|
603
603
|
|
|
604
604
|
if (t->progress_cb &&
|
|
605
|
-
(error = t->progress_cb(git_buf_cstr(&progress_info), git_buf_len(&progress_info), t->message_cb_payload)) < 0)
|
|
605
|
+
(error = t->progress_cb(git_buf_cstr(&progress_info), (int)git_buf_len(&progress_info), t->message_cb_payload)) < 0)
|
|
606
606
|
goto cleanup;
|
|
607
607
|
|
|
608
608
|
if ((error = git_odb_write_pack(&writepack, odb, progress_cb, progress_payload)) != 0)
|
|
@@ -718,7 +718,7 @@ int git_transport_local(git_transport **out, git_remote *owner, void *param)
|
|
|
718
718
|
GIT_UNUSED(param);
|
|
719
719
|
|
|
720
720
|
t = git__calloc(1, sizeof(transport_local));
|
|
721
|
-
|
|
721
|
+
GIT_ERROR_CHECK_ALLOC(t);
|
|
722
722
|
|
|
723
723
|
t->parent.version = GIT_TRANSPORT_VERSION;
|
|
724
724
|
t->parent.set_callbacks = local_set_callbacks;
|
|
@@ -45,9 +45,13 @@ GIT_INLINE(int) git_smart__reset_stream(transport_smart *t, bool close_subtransp
|
|
|
45
45
|
t->current_stream = NULL;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
if (close_subtransport
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
if (close_subtransport) {
|
|
49
|
+
git__free(t->url);
|
|
50
|
+
t->url = NULL;
|
|
51
|
+
|
|
52
|
+
if (t->wrapped->close(t->wrapped) < 0)
|
|
53
|
+
return -1;
|
|
54
|
+
}
|
|
51
55
|
|
|
52
56
|
return 0;
|
|
53
57
|
}
|
|
@@ -59,7 +63,7 @@ static int git_smart__set_callbacks(
|
|
|
59
63
|
git_transport_certificate_check_cb certificate_check_cb,
|
|
60
64
|
void *message_cb_payload)
|
|
61
65
|
{
|
|
62
|
-
transport_smart *t = (transport_smart
|
|
66
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
63
67
|
|
|
64
68
|
t->progress_cb = progress_cb;
|
|
65
69
|
t->error_cb = error_cb;
|
|
@@ -69,7 +73,7 @@ static int git_smart__set_callbacks(
|
|
|
69
73
|
return 0;
|
|
70
74
|
}
|
|
71
75
|
|
|
72
|
-
static
|
|
76
|
+
static size_t http_header_name_length(const char *http_header)
|
|
73
77
|
{
|
|
74
78
|
const char *colon = strchr(http_header, ':');
|
|
75
79
|
if (!colon)
|
|
@@ -80,7 +84,7 @@ static int http_header_name_length(const char *http_header)
|
|
|
80
84
|
static bool is_malformed_http_header(const char *http_header)
|
|
81
85
|
{
|
|
82
86
|
const char *c;
|
|
83
|
-
|
|
87
|
+
size_t name_len;
|
|
84
88
|
|
|
85
89
|
/* Disallow \r and \n */
|
|
86
90
|
c = strchr(http_header, '\r');
|
|
@@ -110,7 +114,7 @@ static char *forbidden_custom_headers[] = {
|
|
|
110
114
|
static bool is_forbidden_custom_header(const char *custom_header)
|
|
111
115
|
{
|
|
112
116
|
unsigned long i;
|
|
113
|
-
|
|
117
|
+
size_t name_len = http_header_name_length(custom_header);
|
|
114
118
|
|
|
115
119
|
/* Disallow headers that we set */
|
|
116
120
|
for (i = 0; i < ARRAY_SIZE(forbidden_custom_headers); i++)
|
|
@@ -124,7 +128,7 @@ static int git_smart__set_custom_headers(
|
|
|
124
128
|
git_transport *transport,
|
|
125
129
|
const git_strarray *custom_headers)
|
|
126
130
|
{
|
|
127
|
-
transport_smart *t = (transport_smart
|
|
131
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
128
132
|
size_t i;
|
|
129
133
|
|
|
130
134
|
if (t->custom_headers.count)
|
|
@@ -135,11 +139,11 @@ static int git_smart__set_custom_headers(
|
|
|
135
139
|
|
|
136
140
|
for (i = 0; i < custom_headers->count; i++) {
|
|
137
141
|
if (is_malformed_http_header(custom_headers->strings[i])) {
|
|
138
|
-
|
|
142
|
+
git_error_set(GIT_ERROR_INVALID, "custom HTTP header '%s' is malformed", custom_headers->strings[i]);
|
|
139
143
|
return -1;
|
|
140
144
|
}
|
|
141
145
|
if (is_forbidden_custom_header(custom_headers->strings[i])) {
|
|
142
|
-
|
|
146
|
+
git_error_set(GIT_ERROR_INVALID, "custom HTTP header '%s' is already set by libgit2", custom_headers->strings[i]);
|
|
143
147
|
return -1;
|
|
144
148
|
}
|
|
145
149
|
}
|
|
@@ -208,7 +212,7 @@ static int git_smart__connect(
|
|
|
208
212
|
int direction,
|
|
209
213
|
int flags)
|
|
210
214
|
{
|
|
211
|
-
transport_smart *t = (transport_smart
|
|
215
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
212
216
|
git_smart_subtransport_stream *stream;
|
|
213
217
|
int error;
|
|
214
218
|
git_pkt *pkt;
|
|
@@ -220,7 +224,7 @@ static int git_smart__connect(
|
|
|
220
224
|
return -1;
|
|
221
225
|
|
|
222
226
|
t->url = git__strdup(url);
|
|
223
|
-
|
|
227
|
+
GIT_ERROR_CHECK_ALLOC(t->url);
|
|
224
228
|
|
|
225
229
|
if (git_proxy_options_dup(&t->proxy, proxy) < 0)
|
|
226
230
|
return -1;
|
|
@@ -235,7 +239,7 @@ static int git_smart__connect(
|
|
|
235
239
|
else if (GIT_DIRECTION_PUSH == t->direction)
|
|
236
240
|
service = GIT_SERVICE_RECEIVEPACK_LS;
|
|
237
241
|
else {
|
|
238
|
-
|
|
242
|
+
git_error_set(GIT_ERROR_NET, "invalid direction");
|
|
239
243
|
return -1;
|
|
240
244
|
}
|
|
241
245
|
|
|
@@ -256,7 +260,7 @@ static int git_smart__connect(
|
|
|
256
260
|
pkt = (git_pkt *)git_vector_get(&t->refs, 0);
|
|
257
261
|
|
|
258
262
|
if (!pkt || GIT_PKT_COMMENT != pkt->type) {
|
|
259
|
-
|
|
263
|
+
git_error_set(GIT_ERROR_NET, "invalid response");
|
|
260
264
|
return -1;
|
|
261
265
|
} else {
|
|
262
266
|
/* Remove the comment pkt from the list */
|
|
@@ -270,7 +274,7 @@ static int git_smart__connect(
|
|
|
270
274
|
|
|
271
275
|
pkt = (git_pkt *)git_vector_get(&t->refs, 0);
|
|
272
276
|
if (pkt && GIT_PKT_REF != pkt->type) {
|
|
273
|
-
|
|
277
|
+
git_error_set(GIT_ERROR_NET, "invalid response");
|
|
274
278
|
return -1;
|
|
275
279
|
}
|
|
276
280
|
first = (git_pkt_ref *)pkt;
|
|
@@ -279,38 +283,42 @@ static int git_smart__connect(
|
|
|
279
283
|
return error;
|
|
280
284
|
|
|
281
285
|
/* Detect capabilities */
|
|
282
|
-
if (git_smart__detect_caps(first, &t->caps, &symrefs)
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
+
if ((error = git_smart__detect_caps(first, &t->caps, &symrefs)) == 0) {
|
|
287
|
+
/* If the only ref in the list is capabilities^{} with OID_ZERO, remove it */
|
|
288
|
+
if (1 == t->refs.length && !strcmp(first->head.name, "capabilities^{}") &&
|
|
289
|
+
git_oid_is_zero(&first->head.oid)) {
|
|
290
|
+
git_vector_clear(&t->refs);
|
|
291
|
+
git_pkt_free((git_pkt *)first);
|
|
292
|
+
}
|
|
286
293
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
294
|
+
/* Keep a list of heads for _ls */
|
|
295
|
+
git_smart__update_heads(t, &symrefs);
|
|
296
|
+
} else if (error == GIT_ENOTFOUND) {
|
|
297
|
+
/* There was no ref packet received, or the cap list was empty */
|
|
298
|
+
error = 0;
|
|
299
|
+
} else {
|
|
300
|
+
git_error_set(GIT_ERROR_NET, "invalid response");
|
|
301
|
+
goto cleanup;
|
|
292
302
|
}
|
|
293
303
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
free_symrefs(&symrefs);
|
|
298
|
-
|
|
299
|
-
if (t->rpc && git_smart__reset_stream(t, false) < 0)
|
|
300
|
-
return -1;
|
|
304
|
+
if (t->rpc && (error = git_smart__reset_stream(t, false)) < 0)
|
|
305
|
+
goto cleanup;
|
|
301
306
|
|
|
302
307
|
/* We're now logically connected. */
|
|
303
308
|
t->connected = 1;
|
|
304
309
|
|
|
305
|
-
|
|
310
|
+
cleanup:
|
|
311
|
+
free_symrefs(&symrefs);
|
|
312
|
+
|
|
313
|
+
return error;
|
|
306
314
|
}
|
|
307
315
|
|
|
308
316
|
static int git_smart__ls(const git_remote_head ***out, size_t *size, git_transport *transport)
|
|
309
317
|
{
|
|
310
|
-
transport_smart *t = (transport_smart
|
|
318
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
311
319
|
|
|
312
320
|
if (!t->have_refs) {
|
|
313
|
-
|
|
321
|
+
git_error_set(GIT_ERROR_NET, "the transport has not yet loaded the refs");
|
|
314
322
|
return -1;
|
|
315
323
|
}
|
|
316
324
|
|
|
@@ -322,7 +330,7 @@ static int git_smart__ls(const git_remote_head ***out, size_t *size, git_transpo
|
|
|
322
330
|
|
|
323
331
|
int git_smart__negotiation_step(git_transport *transport, void *data, size_t len)
|
|
324
332
|
{
|
|
325
|
-
transport_smart *t = (transport_smart
|
|
333
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
326
334
|
git_smart_subtransport_stream *stream;
|
|
327
335
|
int error;
|
|
328
336
|
|
|
@@ -330,7 +338,7 @@ int git_smart__negotiation_step(git_transport *transport, void *data, size_t len
|
|
|
330
338
|
return -1;
|
|
331
339
|
|
|
332
340
|
if (GIT_DIRECTION_FETCH != t->direction) {
|
|
333
|
-
|
|
341
|
+
git_error_set(GIT_ERROR_NET, "this operation is only valid for fetch");
|
|
334
342
|
return -1;
|
|
335
343
|
}
|
|
336
344
|
|
|
@@ -359,7 +367,7 @@ int git_smart__get_push_stream(transport_smart *t, git_smart_subtransport_stream
|
|
|
359
367
|
return -1;
|
|
360
368
|
|
|
361
369
|
if (GIT_DIRECTION_PUSH != t->direction) {
|
|
362
|
-
|
|
370
|
+
git_error_set(GIT_ERROR_NET, "this operation is only valid for push");
|
|
363
371
|
return -1;
|
|
364
372
|
}
|
|
365
373
|
|
|
@@ -379,21 +387,21 @@ int git_smart__get_push_stream(transport_smart *t, git_smart_subtransport_stream
|
|
|
379
387
|
|
|
380
388
|
static void git_smart__cancel(git_transport *transport)
|
|
381
389
|
{
|
|
382
|
-
transport_smart *t = (transport_smart
|
|
390
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
383
391
|
|
|
384
392
|
git_atomic_set(&t->cancelled, 1);
|
|
385
393
|
}
|
|
386
394
|
|
|
387
395
|
static int git_smart__is_connected(git_transport *transport)
|
|
388
396
|
{
|
|
389
|
-
transport_smart *t = (transport_smart
|
|
397
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
390
398
|
|
|
391
399
|
return t->connected;
|
|
392
400
|
}
|
|
393
401
|
|
|
394
402
|
static int git_smart__read_flags(git_transport *transport, int *flags)
|
|
395
403
|
{
|
|
396
|
-
transport_smart *t = (transport_smart
|
|
404
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
397
405
|
|
|
398
406
|
*flags = t->flags;
|
|
399
407
|
|
|
@@ -402,7 +410,7 @@ static int git_smart__read_flags(git_transport *transport, int *flags)
|
|
|
402
410
|
|
|
403
411
|
static int git_smart__close(git_transport *transport)
|
|
404
412
|
{
|
|
405
|
-
transport_smart *t = (transport_smart
|
|
413
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
406
414
|
git_vector *common = &t->common;
|
|
407
415
|
unsigned int i;
|
|
408
416
|
git_pkt *p;
|
|
@@ -439,7 +447,7 @@ static int git_smart__close(git_transport *transport)
|
|
|
439
447
|
|
|
440
448
|
static void git_smart__free(git_transport *transport)
|
|
441
449
|
{
|
|
442
|
-
transport_smart *t = (transport_smart
|
|
450
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
443
451
|
git_vector *refs = &t->refs;
|
|
444
452
|
unsigned int i;
|
|
445
453
|
git_pkt *p;
|
|
@@ -471,21 +479,31 @@ static int ref_name_cmp(const void *a, const void *b)
|
|
|
471
479
|
|
|
472
480
|
int git_transport_smart_certificate_check(git_transport *transport, git_cert *cert, int valid, const char *hostname)
|
|
473
481
|
{
|
|
474
|
-
transport_smart *t = (transport_smart
|
|
482
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
483
|
+
|
|
484
|
+
assert(transport && cert && hostname);
|
|
485
|
+
|
|
486
|
+
if (!t->certificate_check_cb)
|
|
487
|
+
return GIT_PASSTHROUGH;
|
|
475
488
|
|
|
476
489
|
return t->certificate_check_cb(cert, valid, hostname, t->message_cb_payload);
|
|
477
490
|
}
|
|
478
491
|
|
|
479
492
|
int git_transport_smart_credentials(git_cred **out, git_transport *transport, const char *user, int methods)
|
|
480
493
|
{
|
|
481
|
-
transport_smart *t = (transport_smart
|
|
494
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
495
|
+
|
|
496
|
+
assert(out && transport);
|
|
497
|
+
|
|
498
|
+
if (!t->cred_acquire_cb)
|
|
499
|
+
return GIT_PASSTHROUGH;
|
|
482
500
|
|
|
483
501
|
return t->cred_acquire_cb(out, t->url, user, methods, t->cred_acquire_payload);
|
|
484
502
|
}
|
|
485
503
|
|
|
486
504
|
int git_transport_smart_proxy_options(git_proxy_options *out, git_transport *transport)
|
|
487
505
|
{
|
|
488
|
-
transport_smart *t = (transport_smart
|
|
506
|
+
transport_smart *t = GIT_CONTAINER_OF(transport, transport_smart, parent);
|
|
489
507
|
return git_proxy_options_dup(out, &t->proxy);
|
|
490
508
|
}
|
|
491
509
|
|
|
@@ -498,7 +516,7 @@ int git_transport_smart(git_transport **out, git_remote *owner, void *param)
|
|
|
498
516
|
return -1;
|
|
499
517
|
|
|
500
518
|
t = git__calloc(1, sizeof(transport_smart));
|
|
501
|
-
|
|
519
|
+
GIT_ERROR_CHECK_ALLOC(t);
|
|
502
520
|
|
|
503
521
|
t->parent.version = GIT_TRANSPORT_VERSION;
|
|
504
522
|
t->parent.set_callbacks = git_smart__set_callbacks;
|
|
@@ -40,7 +40,6 @@ typedef enum {
|
|
|
40
40
|
GIT_PKT_HAVE,
|
|
41
41
|
GIT_PKT_ACK,
|
|
42
42
|
GIT_PKT_NAK,
|
|
43
|
-
GIT_PKT_PACK,
|
|
44
43
|
GIT_PKT_COMMENT,
|
|
45
44
|
GIT_PKT_ERR,
|
|
46
45
|
GIT_PKT_DATA,
|
|
@@ -91,7 +90,7 @@ typedef struct {
|
|
|
91
90
|
|
|
92
91
|
typedef struct {
|
|
93
92
|
git_pkt_type type;
|
|
94
|
-
|
|
93
|
+
size_t len;
|
|
95
94
|
char data[GIT_FLEX_ARRAY];
|
|
96
95
|
} git_pkt_data;
|
|
97
96
|
|
|
@@ -99,7 +98,7 @@ typedef git_pkt_data git_pkt_progress;
|
|
|
99
98
|
|
|
100
99
|
typedef struct {
|
|
101
100
|
git_pkt_type type;
|
|
102
|
-
|
|
101
|
+
size_t len;
|
|
103
102
|
char error[GIT_FLEX_ARRAY];
|
|
104
103
|
} git_pkt_err;
|
|
105
104
|
|
|
@@ -178,8 +177,8 @@ int git_smart__negotiate_fetch(
|
|
|
178
177
|
int git_smart__download_pack(
|
|
179
178
|
git_transport *transport,
|
|
180
179
|
git_repository *repo,
|
|
181
|
-
|
|
182
|
-
|
|
180
|
+
git_indexer_progress *stats,
|
|
181
|
+
git_indexer_progress_cb progress_cb,
|
|
183
182
|
void *progress_payload);
|
|
184
183
|
|
|
185
184
|
/* smart.c */
|
|
@@ -189,7 +188,7 @@ int git_smart__get_push_stream(transport_smart *t, git_smart_subtransport_stream
|
|
|
189
188
|
int git_smart__update_heads(transport_smart *t, git_vector *symrefs);
|
|
190
189
|
|
|
191
190
|
/* smart_pkt.c */
|
|
192
|
-
int git_pkt_parse_line(git_pkt **head, const char
|
|
191
|
+
int git_pkt_parse_line(git_pkt **head, const char **endptr, const char *line, size_t linelen);
|
|
193
192
|
int git_pkt_buffer_flush(git_buf *buf);
|
|
194
193
|
int git_pkt_send_flush(GIT_SOCKET s);
|
|
195
194
|
int git_pkt_buffer_done(git_buf *buf);
|