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
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
#include "pack-objects.h"
|
|
18
18
|
#include "remote.h"
|
|
19
19
|
#include "util.h"
|
|
20
|
+
#include "revwalk.h"
|
|
20
21
|
|
|
21
22
|
#define NETWORK_XFER_THRESHOLD (100*1024)
|
|
22
23
|
/* The minimal interval between progress updates (in seconds). */
|
|
@@ -44,7 +45,7 @@ int git_smart__store_refs(transport_smart *t, int flushes)
|
|
|
44
45
|
|
|
45
46
|
do {
|
|
46
47
|
if (buf->offset > 0)
|
|
47
|
-
error = git_pkt_parse_line(&pkt, buf->data,
|
|
48
|
+
error = git_pkt_parse_line(&pkt, &line_end, buf->data, buf->offset);
|
|
48
49
|
else
|
|
49
50
|
error = GIT_EBUFS;
|
|
50
51
|
|
|
@@ -56,7 +57,7 @@ int git_smart__store_refs(transport_smart *t, int flushes)
|
|
|
56
57
|
return recvd;
|
|
57
58
|
|
|
58
59
|
if (recvd == 0) {
|
|
59
|
-
|
|
60
|
+
git_error_set(GIT_ERROR_NET, "early EOF");
|
|
60
61
|
return GIT_EEOF;
|
|
61
62
|
}
|
|
62
63
|
|
|
@@ -65,13 +66,7 @@ int git_smart__store_refs(transport_smart *t, int flushes)
|
|
|
65
66
|
|
|
66
67
|
gitno_consume(buf, line_end);
|
|
67
68
|
if (pkt->type == GIT_PKT_ERR) {
|
|
68
|
-
|
|
69
|
-
git__free(pkt);
|
|
70
|
-
return -1;
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (pkt->type == GIT_PKT_PACK) {
|
|
74
|
-
giterr_set(GITERR_NET, "unexpected packfile");
|
|
69
|
+
git_error_set(GIT_ERROR_NET, "remote error: %s", ((git_pkt_err *)pkt)->error);
|
|
75
70
|
git__free(pkt);
|
|
76
71
|
return -1;
|
|
77
72
|
}
|
|
@@ -109,14 +104,14 @@ static int append_symref(const char **out, git_vector *symrefs, const char *ptr)
|
|
|
109
104
|
|
|
110
105
|
/* symref mapping has refspec format */
|
|
111
106
|
mapping = git__calloc(1, sizeof(git_refspec));
|
|
112
|
-
|
|
107
|
+
GIT_ERROR_CHECK_ALLOC(mapping);
|
|
113
108
|
|
|
114
109
|
error = git_refspec__parse(mapping, git_buf_cstr(&buf), true);
|
|
115
110
|
git_buf_dispose(&buf);
|
|
116
111
|
|
|
117
112
|
/* if the error isn't OOM, then it's a parse error; let's use a nicer message */
|
|
118
113
|
if (error < 0) {
|
|
119
|
-
if (
|
|
114
|
+
if (git_error_last()->klass != GIT_ERROR_NOMEMORY)
|
|
120
115
|
goto on_invalid;
|
|
121
116
|
|
|
122
117
|
git__free(mapping);
|
|
@@ -130,7 +125,7 @@ static int append_symref(const char **out, git_vector *symrefs, const char *ptr)
|
|
|
130
125
|
return 0;
|
|
131
126
|
|
|
132
127
|
on_invalid:
|
|
133
|
-
|
|
128
|
+
git_error_set(GIT_ERROR_NET, "remote sent invalid symref");
|
|
134
129
|
git_refspec__dispose(mapping);
|
|
135
130
|
git__free(mapping);
|
|
136
131
|
return -1;
|
|
@@ -142,7 +137,7 @@ int git_smart__detect_caps(git_pkt_ref *pkt, transport_smart_caps *caps, git_vec
|
|
|
142
137
|
|
|
143
138
|
/* No refs or capabilites, odd but not a problem */
|
|
144
139
|
if (pkt == NULL || pkt->capabilities == NULL)
|
|
145
|
-
return
|
|
140
|
+
return GIT_ENOTFOUND;
|
|
146
141
|
|
|
147
142
|
ptr = pkt->capabilities;
|
|
148
143
|
while (ptr != NULL && *ptr != '\0') {
|
|
@@ -223,7 +218,7 @@ static int recv_pkt(git_pkt **out_pkt, git_pkt_type *out_type, gitno_buffer *buf
|
|
|
223
218
|
|
|
224
219
|
do {
|
|
225
220
|
if (buf->offset > 0)
|
|
226
|
-
error = git_pkt_parse_line(&pkt,
|
|
221
|
+
error = git_pkt_parse_line(&pkt, &line_end, ptr, buf->offset);
|
|
227
222
|
else
|
|
228
223
|
error = GIT_EBUFS;
|
|
229
224
|
|
|
@@ -236,7 +231,7 @@ static int recv_pkt(git_pkt **out_pkt, git_pkt_type *out_type, gitno_buffer *buf
|
|
|
236
231
|
if ((ret = gitno_recv(buf)) < 0) {
|
|
237
232
|
return ret;
|
|
238
233
|
} else if (ret == 0) {
|
|
239
|
-
|
|
234
|
+
git_error_set(GIT_ERROR_NET, "early EOF");
|
|
240
235
|
return GIT_EEOF;
|
|
241
236
|
}
|
|
242
237
|
} while (error);
|
|
@@ -276,50 +271,6 @@ static int store_common(transport_smart *t)
|
|
|
276
271
|
return 0;
|
|
277
272
|
}
|
|
278
273
|
|
|
279
|
-
static int fetch_setup_walk(git_revwalk **out, git_repository *repo)
|
|
280
|
-
{
|
|
281
|
-
git_revwalk *walk = NULL;
|
|
282
|
-
git_strarray refs;
|
|
283
|
-
unsigned int i;
|
|
284
|
-
git_reference *ref = NULL;
|
|
285
|
-
int error;
|
|
286
|
-
|
|
287
|
-
if ((error = git_reference_list(&refs, repo)) < 0)
|
|
288
|
-
return error;
|
|
289
|
-
|
|
290
|
-
if ((error = git_revwalk_new(&walk, repo)) < 0)
|
|
291
|
-
return error;
|
|
292
|
-
|
|
293
|
-
git_revwalk_sorting(walk, GIT_SORT_TIME);
|
|
294
|
-
|
|
295
|
-
for (i = 0; i < refs.count; ++i) {
|
|
296
|
-
git_reference_free(ref);
|
|
297
|
-
ref = NULL;
|
|
298
|
-
|
|
299
|
-
/* No tags */
|
|
300
|
-
if (!git__prefixcmp(refs.strings[i], GIT_REFS_TAGS_DIR))
|
|
301
|
-
continue;
|
|
302
|
-
|
|
303
|
-
if ((error = git_reference_lookup(&ref, repo, refs.strings[i])) < 0)
|
|
304
|
-
goto on_error;
|
|
305
|
-
|
|
306
|
-
if (git_reference_type(ref) == GIT_REF_SYMBOLIC)
|
|
307
|
-
continue;
|
|
308
|
-
|
|
309
|
-
if ((error = git_revwalk_push(walk, git_reference_target(ref))) < 0)
|
|
310
|
-
goto on_error;
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
*out = walk;
|
|
314
|
-
|
|
315
|
-
on_error:
|
|
316
|
-
if (error)
|
|
317
|
-
git_revwalk_free(walk);
|
|
318
|
-
git_reference_free(ref);
|
|
319
|
-
git_strarray_free(&refs);
|
|
320
|
-
return error;
|
|
321
|
-
}
|
|
322
|
-
|
|
323
274
|
static int wait_while_ack(gitno_buffer *buf)
|
|
324
275
|
{
|
|
325
276
|
int error;
|
|
@@ -353,6 +304,7 @@ static int wait_while_ack(gitno_buffer *buf)
|
|
|
353
304
|
int git_smart__negotiate_fetch(git_transport *transport, git_repository *repo, const git_remote_head * const *wants, size_t count)
|
|
354
305
|
{
|
|
355
306
|
transport_smart *t = (transport_smart *)transport;
|
|
307
|
+
git_revwalk__push_options opts = GIT_REVWALK__PUSH_OPTIONS_INIT;
|
|
356
308
|
gitno_buffer *buf = &t->buffer;
|
|
357
309
|
git_buf data = GIT_BUF_INIT;
|
|
358
310
|
git_revwalk *walk = NULL;
|
|
@@ -364,7 +316,11 @@ int git_smart__negotiate_fetch(git_transport *transport, git_repository *repo, c
|
|
|
364
316
|
if ((error = git_pkt_buffer_wants(wants, count, &t->caps, &data)) < 0)
|
|
365
317
|
return error;
|
|
366
318
|
|
|
367
|
-
if ((error =
|
|
319
|
+
if ((error = git_revwalk_new(&walk, repo)) < 0)
|
|
320
|
+
goto on_error;
|
|
321
|
+
|
|
322
|
+
opts.insert_by_date = 1;
|
|
323
|
+
if ((error = git_revwalk__push_glob(walk, "refs/*", &opts)) < 0)
|
|
368
324
|
goto on_error;
|
|
369
325
|
|
|
370
326
|
/*
|
|
@@ -388,7 +344,7 @@ int git_smart__negotiate_fetch(git_transport *transport, git_repository *repo, c
|
|
|
388
344
|
i++;
|
|
389
345
|
if (i % 20 == 0) {
|
|
390
346
|
if (t->cancelled.val) {
|
|
391
|
-
|
|
347
|
+
git_error_set(GIT_ERROR_NET, "The fetch was cancelled by the user");
|
|
392
348
|
error = GIT_EUSER;
|
|
393
349
|
goto on_error;
|
|
394
350
|
}
|
|
@@ -415,7 +371,7 @@ int git_smart__negotiate_fetch(git_transport *transport, git_repository *repo, c
|
|
|
415
371
|
} else if (pkt_type == GIT_PKT_NAK) {
|
|
416
372
|
continue;
|
|
417
373
|
} else {
|
|
418
|
-
|
|
374
|
+
git_error_set(GIT_ERROR_NET, "Unexpected pkt type");
|
|
419
375
|
error = -1;
|
|
420
376
|
goto on_error;
|
|
421
377
|
}
|
|
@@ -467,7 +423,7 @@ int git_smart__negotiate_fetch(git_transport *transport, git_repository *repo, c
|
|
|
467
423
|
goto on_error;
|
|
468
424
|
|
|
469
425
|
if (t->cancelled.val) {
|
|
470
|
-
|
|
426
|
+
git_error_set(GIT_ERROR_NET, "The fetch was cancelled by the user");
|
|
471
427
|
error = GIT_EUSER;
|
|
472
428
|
goto on_error;
|
|
473
429
|
}
|
|
@@ -483,7 +439,7 @@ int git_smart__negotiate_fetch(git_transport *transport, git_repository *repo, c
|
|
|
483
439
|
return error;
|
|
484
440
|
|
|
485
441
|
if (pkt_type != GIT_PKT_ACK && pkt_type != GIT_PKT_NAK) {
|
|
486
|
-
|
|
442
|
+
git_error_set(GIT_ERROR_NET, "Unexpected pkt type");
|
|
487
443
|
return -1;
|
|
488
444
|
}
|
|
489
445
|
} else {
|
|
@@ -498,13 +454,13 @@ on_error:
|
|
|
498
454
|
return error;
|
|
499
455
|
}
|
|
500
456
|
|
|
501
|
-
static int no_sideband(transport_smart *t, struct git_odb_writepack *writepack, gitno_buffer *buf,
|
|
457
|
+
static int no_sideband(transport_smart *t, struct git_odb_writepack *writepack, gitno_buffer *buf, git_indexer_progress *stats)
|
|
502
458
|
{
|
|
503
459
|
int recvd;
|
|
504
460
|
|
|
505
461
|
do {
|
|
506
462
|
if (t->cancelled.val) {
|
|
507
|
-
|
|
463
|
+
git_error_set(GIT_ERROR_NET, "The fetch was cancelled by the user");
|
|
508
464
|
return GIT_EUSER;
|
|
509
465
|
}
|
|
510
466
|
|
|
@@ -525,9 +481,9 @@ static int no_sideband(transport_smart *t, struct git_odb_writepack *writepack,
|
|
|
525
481
|
|
|
526
482
|
struct network_packetsize_payload
|
|
527
483
|
{
|
|
528
|
-
|
|
484
|
+
git_indexer_progress_cb callback;
|
|
529
485
|
void *payload;
|
|
530
|
-
|
|
486
|
+
git_indexer_progress *stats;
|
|
531
487
|
size_t last_fired_bytes;
|
|
532
488
|
};
|
|
533
489
|
|
|
@@ -552,8 +508,8 @@ static int network_packetsize(size_t received, void *payload)
|
|
|
552
508
|
int git_smart__download_pack(
|
|
553
509
|
git_transport *transport,
|
|
554
510
|
git_repository *repo,
|
|
555
|
-
|
|
556
|
-
|
|
511
|
+
git_indexer_progress *stats,
|
|
512
|
+
git_indexer_progress_cb progress_cb,
|
|
557
513
|
void *progress_payload)
|
|
558
514
|
{
|
|
559
515
|
transport_smart *t = (transport_smart *)transport;
|
|
@@ -563,10 +519,10 @@ int git_smart__download_pack(
|
|
|
563
519
|
int error = 0;
|
|
564
520
|
struct network_packetsize_payload npp = {0};
|
|
565
521
|
|
|
566
|
-
memset(stats, 0, sizeof(
|
|
522
|
+
memset(stats, 0, sizeof(git_indexer_progress));
|
|
567
523
|
|
|
568
|
-
if (
|
|
569
|
-
npp.callback =
|
|
524
|
+
if (progress_cb) {
|
|
525
|
+
npp.callback = progress_cb;
|
|
570
526
|
npp.payload = progress_payload;
|
|
571
527
|
npp.stats = stats;
|
|
572
528
|
t->packetsize_cb = &network_packetsize;
|
|
@@ -579,7 +535,7 @@ int git_smart__download_pack(
|
|
|
579
535
|
}
|
|
580
536
|
|
|
581
537
|
if ((error = git_repository_odb__weakptr(&odb, repo)) < 0 ||
|
|
582
|
-
((error = git_odb_write_pack(&writepack, odb,
|
|
538
|
+
((error = git_odb_write_pack(&writepack, odb, progress_cb, progress_payload)) != 0))
|
|
583
539
|
goto done;
|
|
584
540
|
|
|
585
541
|
/*
|
|
@@ -597,7 +553,7 @@ int git_smart__download_pack(
|
|
|
597
553
|
|
|
598
554
|
/* Check cancellation before network call */
|
|
599
555
|
if (t->cancelled.val) {
|
|
600
|
-
|
|
556
|
+
git_error_clear();
|
|
601
557
|
error = GIT_EUSER;
|
|
602
558
|
goto done;
|
|
603
559
|
}
|
|
@@ -605,12 +561,19 @@ int git_smart__download_pack(
|
|
|
605
561
|
if ((error = recv_pkt(&pkt, NULL, buf)) >= 0) {
|
|
606
562
|
/* Check cancellation after network call */
|
|
607
563
|
if (t->cancelled.val) {
|
|
608
|
-
|
|
564
|
+
git_error_clear();
|
|
609
565
|
error = GIT_EUSER;
|
|
610
566
|
} else if (pkt->type == GIT_PKT_PROGRESS) {
|
|
611
567
|
if (t->progress_cb) {
|
|
612
568
|
git_pkt_progress *p = (git_pkt_progress *) pkt;
|
|
613
|
-
|
|
569
|
+
|
|
570
|
+
if (p->len > INT_MAX) {
|
|
571
|
+
git_error_set(GIT_ERROR_NET, "oversized progress message");
|
|
572
|
+
error = GIT_ERROR;
|
|
573
|
+
goto done;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
error = t->progress_cb(p->data, (int)p->len, t->message_cb_payload);
|
|
614
577
|
}
|
|
615
578
|
} else if (pkt->type == GIT_PKT_DATA) {
|
|
616
579
|
git_pkt_data *p = (git_pkt_data *) pkt;
|
|
@@ -632,7 +595,7 @@ int git_smart__download_pack(
|
|
|
632
595
|
} while (1);
|
|
633
596
|
|
|
634
597
|
/*
|
|
635
|
-
* Trailing execution of
|
|
598
|
+
* Trailing execution of progress_cb, if necessary...
|
|
636
599
|
* Only the callback through the npp datastructure currently
|
|
637
600
|
* updates the last_fired_bytes value. It is possible that
|
|
638
601
|
* progress has already been reported with the correct
|
|
@@ -651,7 +614,7 @@ int git_smart__download_pack(
|
|
|
651
614
|
done:
|
|
652
615
|
if (writepack)
|
|
653
616
|
writepack->free(writepack);
|
|
654
|
-
if (
|
|
617
|
+
if (progress_cb) {
|
|
655
618
|
t->packetsize_cb = NULL;
|
|
656
619
|
t->packetsize_payload = NULL;
|
|
657
620
|
}
|
|
@@ -707,7 +670,7 @@ static int add_push_report_pkt(git_push *push, git_pkt *pkt)
|
|
|
707
670
|
switch (pkt->type) {
|
|
708
671
|
case GIT_PKT_OK:
|
|
709
672
|
status = git__calloc(1, sizeof(push_status));
|
|
710
|
-
|
|
673
|
+
GIT_ERROR_CHECK_ALLOC(status);
|
|
711
674
|
status->msg = NULL;
|
|
712
675
|
status->ref = git__strdup(((git_pkt_ok *)pkt)->ref);
|
|
713
676
|
if (!status->ref ||
|
|
@@ -718,7 +681,7 @@ static int add_push_report_pkt(git_push *push, git_pkt *pkt)
|
|
|
718
681
|
break;
|
|
719
682
|
case GIT_PKT_NG:
|
|
720
683
|
status = git__calloc(1, sizeof(push_status));
|
|
721
|
-
|
|
684
|
+
GIT_ERROR_CHECK_ALLOC(status);
|
|
722
685
|
status->ref = git__strdup(((git_pkt_ng *)pkt)->ref);
|
|
723
686
|
status->msg = git__strdup(((git_pkt_ng *)pkt)->msg);
|
|
724
687
|
if (!status->ref || !status->msg ||
|
|
@@ -733,7 +696,7 @@ static int add_push_report_pkt(git_push *push, git_pkt *pkt)
|
|
|
733
696
|
case GIT_PKT_FLUSH:
|
|
734
697
|
return GIT_ITEROVER;
|
|
735
698
|
default:
|
|
736
|
-
|
|
699
|
+
git_error_set(GIT_ERROR_NET, "report-status: protocol error");
|
|
737
700
|
return -1;
|
|
738
701
|
}
|
|
739
702
|
|
|
@@ -761,7 +724,7 @@ static int add_push_report_sideband_pkt(git_push *push, git_pkt_data *data_pkt,
|
|
|
761
724
|
}
|
|
762
725
|
|
|
763
726
|
while (line_len > 0) {
|
|
764
|
-
error = git_pkt_parse_line(&pkt,
|
|
727
|
+
error = git_pkt_parse_line(&pkt, &line_end, line, line_len);
|
|
765
728
|
|
|
766
729
|
if (error == GIT_EBUFS) {
|
|
767
730
|
/* Buffer the data when the inner packet is split
|
|
@@ -804,8 +767,8 @@ static int parse_report(transport_smart *transport, git_push *push)
|
|
|
804
767
|
|
|
805
768
|
for (;;) {
|
|
806
769
|
if (buf->offset > 0)
|
|
807
|
-
error = git_pkt_parse_line(&pkt,
|
|
808
|
-
|
|
770
|
+
error = git_pkt_parse_line(&pkt, &line_end,
|
|
771
|
+
buf->data, buf->offset);
|
|
809
772
|
else
|
|
810
773
|
error = GIT_EBUFS;
|
|
811
774
|
|
|
@@ -821,7 +784,7 @@ static int parse_report(transport_smart *transport, git_push *push)
|
|
|
821
784
|
}
|
|
822
785
|
|
|
823
786
|
if (recvd == 0) {
|
|
824
|
-
|
|
787
|
+
git_error_set(GIT_ERROR_NET, "early EOF");
|
|
825
788
|
error = GIT_EEOF;
|
|
826
789
|
goto done;
|
|
827
790
|
}
|
|
@@ -838,14 +801,21 @@ static int parse_report(transport_smart *transport, git_push *push)
|
|
|
838
801
|
error = add_push_report_sideband_pkt(push, (git_pkt_data *)pkt, &data_pkt_buf);
|
|
839
802
|
break;
|
|
840
803
|
case GIT_PKT_ERR:
|
|
841
|
-
|
|
804
|
+
git_error_set(GIT_ERROR_NET, "report-status: Error reported: %s",
|
|
842
805
|
((git_pkt_err *)pkt)->error);
|
|
843
806
|
error = -1;
|
|
844
807
|
break;
|
|
845
808
|
case GIT_PKT_PROGRESS:
|
|
846
809
|
if (transport->progress_cb) {
|
|
847
810
|
git_pkt_progress *p = (git_pkt_progress *) pkt;
|
|
848
|
-
|
|
811
|
+
|
|
812
|
+
if (p->len > INT_MAX) {
|
|
813
|
+
git_error_set(GIT_ERROR_NET, "oversized progress message");
|
|
814
|
+
error = GIT_ERROR;
|
|
815
|
+
goto done;
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
error = transport->progress_cb(p->data, (int)p->len, transport->message_cb_payload);
|
|
849
819
|
}
|
|
850
820
|
break;
|
|
851
821
|
default:
|
|
@@ -861,7 +831,7 @@ static int parse_report(transport_smart *transport, git_push *push)
|
|
|
861
831
|
if (data_pkt_buf.size > 0) {
|
|
862
832
|
/* If there was data remaining in the pack data buffer,
|
|
863
833
|
* then the server sent a partial pkt-line */
|
|
864
|
-
|
|
834
|
+
git_error_set(GIT_ERROR_NET, "Incomplete pack data pkt-line");
|
|
865
835
|
error = GIT_ERROR;
|
|
866
836
|
}
|
|
867
837
|
goto done;
|
|
@@ -879,7 +849,7 @@ done:
|
|
|
879
849
|
static int add_ref_from_push_spec(git_vector *refs, push_spec *push_spec)
|
|
880
850
|
{
|
|
881
851
|
git_pkt_ref *added = git__calloc(1, sizeof(git_pkt_ref));
|
|
882
|
-
|
|
852
|
+
GIT_ERROR_CHECK_ALLOC(added);
|
|
883
853
|
|
|
884
854
|
added->type = GIT_PKT_REF;
|
|
885
855
|
git_oid_cpy(&added->head.oid, &push_spec->loid);
|
|
@@ -908,7 +878,7 @@ static int update_refs_from_report(
|
|
|
908
878
|
/* For each push spec we sent to the server, we should have
|
|
909
879
|
* gotten back a status packet in the push report */
|
|
910
880
|
if (push_specs->length != push_report->length) {
|
|
911
|
-
|
|
881
|
+
git_error_set(GIT_ERROR_NET, "report-status: protocol error");
|
|
912
882
|
return -1;
|
|
913
883
|
}
|
|
914
884
|
|
|
@@ -923,7 +893,7 @@ static int update_refs_from_report(
|
|
|
923
893
|
/* For each push spec we sent to the server, we should have
|
|
924
894
|
* gotten back a status packet in the push report which matches */
|
|
925
895
|
if (strcmp(push_spec->refspec.dst, push_status->ref)) {
|
|
926
|
-
|
|
896
|
+
git_error_set(GIT_ERROR_NET, "report-status: protocol error");
|
|
927
897
|
return -1;
|
|
928
898
|
}
|
|
929
899
|
}
|
|
@@ -969,7 +939,7 @@ static int update_refs_from_report(
|
|
|
969
939
|
|
|
970
940
|
/* Remove any refs which we updated to have a zero OID. */
|
|
971
941
|
git_vector_rforeach(refs, i, ref) {
|
|
972
|
-
if (
|
|
942
|
+
if (git_oid_is_zero(&ref->head.oid)) {
|
|
973
943
|
git_vector_remove(refs, i);
|
|
974
944
|
git_pkt_free((git_pkt *)ref);
|
|
975
945
|
}
|
|
@@ -984,7 +954,7 @@ struct push_packbuilder_payload
|
|
|
984
954
|
{
|
|
985
955
|
git_smart_subtransport_stream *stream;
|
|
986
956
|
git_packbuilder *pb;
|
|
987
|
-
|
|
957
|
+
git_push_transfer_progress_cb cb;
|
|
988
958
|
void *cb_payload;
|
|
989
959
|
size_t last_bytes;
|
|
990
960
|
double last_progress_report_time;
|