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
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#include "diff.h"
|
|
11
11
|
#include "diff_file.h"
|
|
12
12
|
#include "patch_generate.h"
|
|
13
|
-
#include "
|
|
13
|
+
#include "futils.h"
|
|
14
14
|
#include "zstream.h"
|
|
15
15
|
#include "blob.h"
|
|
16
16
|
#include "delta.h"
|
|
@@ -48,7 +48,7 @@ static int diff_print_info_init__common(
|
|
|
48
48
|
if (!pi->id_strlen) {
|
|
49
49
|
if (!repo)
|
|
50
50
|
pi->id_strlen = GIT_ABBREV_DEFAULT;
|
|
51
|
-
else if (
|
|
51
|
+
else if (git_repository__configmap_lookup(&pi->id_strlen, repo, GIT_CONFIGMAP_ABBREV) < 0)
|
|
52
52
|
return -1;
|
|
53
53
|
}
|
|
54
54
|
|
|
@@ -224,7 +224,7 @@ static int diff_print_one_raw(
|
|
|
224
224
|
delta->new_file.id_abbrev;
|
|
225
225
|
|
|
226
226
|
if (pi->id_strlen > id_abbrev) {
|
|
227
|
-
|
|
227
|
+
git_error_set(GIT_ERROR_PATCH,
|
|
228
228
|
"the patch input contains %d id characters (cannot print %d)",
|
|
229
229
|
id_abbrev, pi->id_strlen);
|
|
230
230
|
return -1;
|
|
@@ -269,13 +269,14 @@ static int diff_print_modes(
|
|
|
269
269
|
}
|
|
270
270
|
|
|
271
271
|
static int diff_print_oid_range(
|
|
272
|
-
git_buf *out, const git_diff_delta *delta, int id_strlen
|
|
272
|
+
git_buf *out, const git_diff_delta *delta, int id_strlen,
|
|
273
|
+
bool print_index)
|
|
273
274
|
{
|
|
274
275
|
char start_oid[GIT_OID_HEXSZ+1], end_oid[GIT_OID_HEXSZ+1];
|
|
275
276
|
|
|
276
277
|
if (delta->old_file.mode &&
|
|
277
278
|
id_strlen > delta->old_file.id_abbrev) {
|
|
278
|
-
|
|
279
|
+
git_error_set(GIT_ERROR_PATCH,
|
|
279
280
|
"the patch input contains %d id characters (cannot print %d)",
|
|
280
281
|
delta->old_file.id_abbrev, id_strlen);
|
|
281
282
|
return -1;
|
|
@@ -283,7 +284,7 @@ static int diff_print_oid_range(
|
|
|
283
284
|
|
|
284
285
|
if ((delta->new_file.mode &&
|
|
285
286
|
id_strlen > delta->new_file.id_abbrev)) {
|
|
286
|
-
|
|
287
|
+
git_error_set(GIT_ERROR_PATCH,
|
|
287
288
|
"the patch input contains %d id characters (cannot print %d)",
|
|
288
289
|
delta->new_file.id_abbrev, id_strlen);
|
|
289
290
|
return -1;
|
|
@@ -293,8 +294,9 @@ static int diff_print_oid_range(
|
|
|
293
294
|
git_oid_tostr(end_oid, id_strlen + 1, &delta->new_file.id);
|
|
294
295
|
|
|
295
296
|
if (delta->old_file.mode == delta->new_file.mode) {
|
|
296
|
-
|
|
297
|
-
|
|
297
|
+
if (print_index)
|
|
298
|
+
git_buf_printf(out, "index %s..%s %o\n",
|
|
299
|
+
start_oid, end_oid, delta->old_file.mode);
|
|
298
300
|
} else {
|
|
299
301
|
if (delta->old_file.mode == 0)
|
|
300
302
|
git_buf_printf(out, "new file mode %o\n", delta->new_file.mode);
|
|
@@ -303,7 +305,8 @@ static int diff_print_oid_range(
|
|
|
303
305
|
else
|
|
304
306
|
diff_print_modes(out, delta);
|
|
305
307
|
|
|
306
|
-
|
|
308
|
+
if (print_index)
|
|
309
|
+
git_buf_printf(out, "index %s..%s\n", start_oid, end_oid);
|
|
307
310
|
}
|
|
308
311
|
|
|
309
312
|
return git_buf_oom(out) ? -1 : 0;
|
|
@@ -325,10 +328,10 @@ static int diff_delta_format_with_paths(
|
|
|
325
328
|
const char *oldpath,
|
|
326
329
|
const char *newpath)
|
|
327
330
|
{
|
|
328
|
-
if (
|
|
331
|
+
if (git_oid_is_zero(&delta->old_file.id))
|
|
329
332
|
oldpath = "/dev/null";
|
|
330
333
|
|
|
331
|
-
if (
|
|
334
|
+
if (git_oid_is_zero(&delta->new_file.id))
|
|
332
335
|
newpath = "/dev/null";
|
|
333
336
|
|
|
334
337
|
return git_buf_printf(out, template, oldpath, newpath);
|
|
@@ -343,7 +346,7 @@ int diff_delta_format_similarity_header(
|
|
|
343
346
|
int error = 0;
|
|
344
347
|
|
|
345
348
|
if (delta->similarity > 100) {
|
|
346
|
-
|
|
349
|
+
git_error_set(GIT_ERROR_PATCH, "invalid similarity %d", delta->similarity);
|
|
347
350
|
error = -1;
|
|
348
351
|
goto done;
|
|
349
352
|
}
|
|
@@ -381,8 +384,8 @@ done:
|
|
|
381
384
|
|
|
382
385
|
static bool delta_is_unchanged(const git_diff_delta *delta)
|
|
383
386
|
{
|
|
384
|
-
if (
|
|
385
|
-
|
|
387
|
+
if (git_oid_is_zero(&delta->old_file.id) &&
|
|
388
|
+
git_oid_is_zero(&delta->new_file.id))
|
|
386
389
|
return true;
|
|
387
390
|
|
|
388
391
|
if (delta->old_file.mode == GIT_FILEMODE_COMMIT ||
|
|
@@ -400,7 +403,8 @@ int git_diff_delta__format_file_header(
|
|
|
400
403
|
const git_diff_delta *delta,
|
|
401
404
|
const char *oldpfx,
|
|
402
405
|
const char *newpfx,
|
|
403
|
-
int id_strlen
|
|
406
|
+
int id_strlen,
|
|
407
|
+
bool print_index)
|
|
404
408
|
{
|
|
405
409
|
git_buf old_path = GIT_BUF_INIT, new_path = GIT_BUF_INIT;
|
|
406
410
|
bool unchanged = delta_is_unchanged(delta);
|
|
@@ -431,7 +435,8 @@ int git_diff_delta__format_file_header(
|
|
|
431
435
|
}
|
|
432
436
|
|
|
433
437
|
if (!unchanged) {
|
|
434
|
-
if ((error = diff_print_oid_range(out, delta,
|
|
438
|
+
if ((error = diff_print_oid_range(out, delta,
|
|
439
|
+
id_strlen, print_index)) < 0)
|
|
435
440
|
goto done;
|
|
436
441
|
|
|
437
442
|
if ((delta->flags & GIT_DIFF_FLAG_BINARY) == 0)
|
|
@@ -540,7 +545,7 @@ static int diff_print_patch_file_binary(
|
|
|
540
545
|
binary->old_file.datalen, binary->old_file.inflatedlen)) < 0) {
|
|
541
546
|
|
|
542
547
|
if (error == GIT_EBUFS) {
|
|
543
|
-
|
|
548
|
+
git_error_clear();
|
|
544
549
|
git_buf_truncate(pi->buf, pre_binary_size);
|
|
545
550
|
|
|
546
551
|
return diff_print_patch_file_binary_noshow(
|
|
@@ -566,6 +571,7 @@ static int diff_print_patch_file(
|
|
|
566
571
|
(pi->flags & GIT_DIFF_FORCE_BINARY);
|
|
567
572
|
bool show_binary = !!(pi->flags & GIT_DIFF_SHOW_BINARY);
|
|
568
573
|
int id_strlen = pi->id_strlen;
|
|
574
|
+
bool print_index = (pi->format != GIT_DIFF_FORMAT_PATCH_ID);
|
|
569
575
|
|
|
570
576
|
if (binary && show_binary)
|
|
571
577
|
id_strlen = delta->old_file.id_abbrev ? delta->old_file.id_abbrev :
|
|
@@ -582,7 +588,8 @@ static int diff_print_patch_file(
|
|
|
582
588
|
return 0;
|
|
583
589
|
|
|
584
590
|
if ((error = git_diff_delta__format_file_header(
|
|
585
|
-
pi->buf, delta, oldpfx, newpfx,
|
|
591
|
+
pi->buf, delta, oldpfx, newpfx,
|
|
592
|
+
id_strlen, print_index)) < 0)
|
|
586
593
|
return error;
|
|
587
594
|
|
|
588
595
|
pi->line.origin = GIT_DIFF_LINE_FILE_HDR;
|
|
@@ -670,6 +677,11 @@ int git_diff_print(
|
|
|
670
677
|
print_hunk = diff_print_patch_hunk;
|
|
671
678
|
print_line = diff_print_patch_line;
|
|
672
679
|
break;
|
|
680
|
+
case GIT_DIFF_FORMAT_PATCH_ID:
|
|
681
|
+
print_file = diff_print_patch_file;
|
|
682
|
+
print_binary = diff_print_patch_binary;
|
|
683
|
+
print_line = diff_print_patch_line;
|
|
684
|
+
break;
|
|
673
685
|
case GIT_DIFF_FORMAT_PATCH_HEADER:
|
|
674
686
|
print_file = diff_print_patch_file;
|
|
675
687
|
break;
|
|
@@ -683,7 +695,7 @@ int git_diff_print(
|
|
|
683
695
|
print_file = diff_print_one_name_status;
|
|
684
696
|
break;
|
|
685
697
|
default:
|
|
686
|
-
|
|
698
|
+
git_error_set(GIT_ERROR_INVALID, "unknown diff output format (%d)", format);
|
|
687
699
|
return -1;
|
|
688
700
|
}
|
|
689
701
|
|
|
@@ -693,7 +705,7 @@ int git_diff_print(
|
|
|
693
705
|
diff, print_file, print_binary, print_hunk, print_line, &pi);
|
|
694
706
|
|
|
695
707
|
if (error) /* make sure error message is set */
|
|
696
|
-
|
|
708
|
+
git_error_set_after_callback_function(error, "git_diff_print");
|
|
697
709
|
}
|
|
698
710
|
|
|
699
711
|
git_buf_dispose(&buf);
|
|
@@ -711,7 +723,7 @@ int git_diff_print_callback__to_buf(
|
|
|
711
723
|
GIT_UNUSED(delta); GIT_UNUSED(hunk);
|
|
712
724
|
|
|
713
725
|
if (!output) {
|
|
714
|
-
|
|
726
|
+
git_error_set(GIT_ERROR_INVALID, "buffer pointer must be provided");
|
|
715
727
|
return -1;
|
|
716
728
|
}
|
|
717
729
|
|
|
@@ -773,7 +785,7 @@ int git_patch_print(
|
|
|
773
785
|
&pi);
|
|
774
786
|
|
|
775
787
|
if (error) /* make sure error message is set */
|
|
776
|
-
|
|
788
|
+
git_error_set_after_callback_function(error, "git_patch_print");
|
|
777
789
|
}
|
|
778
790
|
|
|
779
791
|
git_buf_dispose(&temp);
|
|
@@ -54,22 +54,37 @@ int git_diff_file_stats__full_to_buf(
|
|
|
54
54
|
size_t width)
|
|
55
55
|
{
|
|
56
56
|
const char *old_path = NULL, *new_path = NULL;
|
|
57
|
-
size_t padding
|
|
57
|
+
size_t padding;
|
|
58
|
+
git_object_size_t old_size, new_size;
|
|
58
59
|
|
|
59
60
|
old_path = delta->old_file.path;
|
|
60
61
|
new_path = delta->new_file.path;
|
|
61
62
|
old_size = delta->old_file.size;
|
|
62
63
|
new_size = delta->new_file.size;
|
|
63
64
|
|
|
64
|
-
if (git_buf_printf(out, " %s", old_path) < 0)
|
|
65
|
-
goto on_error;
|
|
66
|
-
|
|
67
65
|
if (strcmp(old_path, new_path) != 0) {
|
|
66
|
+
size_t common_dirlen;
|
|
67
|
+
int error;
|
|
68
|
+
|
|
68
69
|
padding = stats->max_name - strlen(old_path) - strlen(new_path);
|
|
69
70
|
|
|
70
|
-
if (
|
|
71
|
+
if ((common_dirlen = git_path_common_dirlen(old_path, new_path)) &&
|
|
72
|
+
common_dirlen <= INT_MAX) {
|
|
73
|
+
error = git_buf_printf(out, " %.*s{%s"DIFF_RENAME_FILE_SEPARATOR"%s}",
|
|
74
|
+
(int) common_dirlen, old_path,
|
|
75
|
+
old_path + common_dirlen,
|
|
76
|
+
new_path + common_dirlen);
|
|
77
|
+
} else {
|
|
78
|
+
error = git_buf_printf(out, " %s" DIFF_RENAME_FILE_SEPARATOR "%s",
|
|
79
|
+
old_path, new_path);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
if (error < 0)
|
|
71
83
|
goto on_error;
|
|
72
84
|
} else {
|
|
85
|
+
if (git_buf_printf(out, " %s", old_path) < 0)
|
|
86
|
+
goto on_error;
|
|
87
|
+
|
|
73
88
|
padding = stats->max_name - strlen(old_path);
|
|
74
89
|
|
|
75
90
|
if (stats->renames > 0)
|
|
@@ -82,7 +97,7 @@ int git_diff_file_stats__full_to_buf(
|
|
|
82
97
|
|
|
83
98
|
if (delta->flags & GIT_DIFF_FLAG_BINARY) {
|
|
84
99
|
if (git_buf_printf(out,
|
|
85
|
-
"Bin %"
|
|
100
|
+
"Bin %" PRId64 " -> %" PRId64 " bytes", old_size, new_size) < 0)
|
|
86
101
|
goto on_error;
|
|
87
102
|
}
|
|
88
103
|
else {
|
|
@@ -170,7 +185,7 @@ int git_diff_get_stats(
|
|
|
170
185
|
assert(out && diff);
|
|
171
186
|
|
|
172
187
|
stats = git__calloc(1, sizeof(git_diff_stats));
|
|
173
|
-
|
|
188
|
+
GIT_ERROR_CHECK_ALLOC(stats);
|
|
174
189
|
|
|
175
190
|
deltas = git_diff_num_deltas(diff);
|
|
176
191
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
#include "diff.h"
|
|
15
15
|
#include "diff_generate.h"
|
|
16
16
|
#include "path.h"
|
|
17
|
-
#include "
|
|
17
|
+
#include "futils.h"
|
|
18
18
|
#include "config.h"
|
|
19
19
|
|
|
20
20
|
git_diff_delta *git_diff__delta_dup(
|
|
@@ -131,7 +131,7 @@ int git_diff__merge(
|
|
|
131
131
|
|
|
132
132
|
if (ignore_case != ((from->opts.flags & GIT_DIFF_IGNORE_CASE) != 0) ||
|
|
133
133
|
reversed != ((from->opts.flags & GIT_DIFF_REVERSE) != 0)) {
|
|
134
|
-
|
|
134
|
+
git_error_set(GIT_ERROR_INVALID,
|
|
135
135
|
"attempt to merge diffs created with conflicting options");
|
|
136
136
|
return -1;
|
|
137
137
|
}
|
|
@@ -251,7 +251,7 @@ static int normalize_find_opts(
|
|
|
251
251
|
git_config *cfg = NULL;
|
|
252
252
|
git_hashsig_option_t hashsig_opts;
|
|
253
253
|
|
|
254
|
-
|
|
254
|
+
GIT_ERROR_CHECK_VERSION(given, GIT_DIFF_FIND_OPTIONS_VERSION, "git_diff_find_options");
|
|
255
255
|
|
|
256
256
|
if (diff->repo != NULL &&
|
|
257
257
|
git_repository_config__weakptr(&cfg, diff->repo) < 0)
|
|
@@ -332,7 +332,7 @@ static int normalize_find_opts(
|
|
|
332
332
|
/* assign the internal metric with whitespace flag as payload */
|
|
333
333
|
if (!opts->metric) {
|
|
334
334
|
opts->metric = git__malloc(sizeof(git_diff_similarity_metric));
|
|
335
|
-
|
|
335
|
+
GIT_ERROR_CHECK_ALLOC(opts->metric);
|
|
336
336
|
|
|
337
337
|
opts->metric->file_signature = git_diff_find_similar__hashsig_for_file;
|
|
338
338
|
opts->metric->buffer_signature = git_diff_find_similar__hashsig_for_buf;
|
|
@@ -357,7 +357,7 @@ static int insert_delete_side_of_split(
|
|
|
357
357
|
{
|
|
358
358
|
/* make new record for DELETED side of split */
|
|
359
359
|
git_diff_delta *deleted = git_diff__delta_dup(delta, &diff->pool);
|
|
360
|
-
|
|
360
|
+
GIT_ERROR_CHECK_ALLOC(deleted);
|
|
361
361
|
|
|
362
362
|
deleted->status = GIT_DELTA_DELETED;
|
|
363
363
|
deleted->nfiles = 1;
|
|
@@ -496,13 +496,13 @@ static int similarity_sig(
|
|
|
496
496
|
if (info->odb_obj != NULL)
|
|
497
497
|
error = git_object__from_odb_object(
|
|
498
498
|
(git_object **)&info->blob, info->repo,
|
|
499
|
-
info->odb_obj,
|
|
499
|
+
info->odb_obj, GIT_OBJECT_BLOB);
|
|
500
500
|
else
|
|
501
501
|
error = git_blob_lookup(&info->blob, info->repo, &file->id);
|
|
502
502
|
|
|
503
503
|
if (error < 0) {
|
|
504
504
|
/* if lookup fails, just skip this item in similarity calc */
|
|
505
|
-
|
|
505
|
+
git_error_clear();
|
|
506
506
|
} else {
|
|
507
507
|
size_t sz;
|
|
508
508
|
|
|
@@ -510,7 +510,7 @@ static int similarity_sig(
|
|
|
510
510
|
if (file->size != git_blob_rawsize(info->blob))
|
|
511
511
|
file->size = git_blob_rawsize(info->blob);
|
|
512
512
|
|
|
513
|
-
sz =
|
|
513
|
+
sz = git__is_sizet(file->size) ? (size_t)file->size : (size_t)-1;
|
|
514
514
|
|
|
515
515
|
error = opts->metric->buffer_signature(
|
|
516
516
|
&cache[info->idx], info->file,
|
|
@@ -560,13 +560,13 @@ static int similarity_measure(
|
|
|
560
560
|
|
|
561
561
|
/* if exact match is requested, force calculation of missing OIDs now */
|
|
562
562
|
if (exact_match) {
|
|
563
|
-
if (
|
|
563
|
+
if (git_oid_is_zero(&a_file->id) &&
|
|
564
564
|
diff->old_src == GIT_ITERATOR_TYPE_WORKDIR &&
|
|
565
565
|
!git_diff__oid_for_file(&a_file->id,
|
|
566
566
|
diff, a_file->path, a_file->mode, a_file->size))
|
|
567
567
|
a_file->flags |= GIT_DIFF_FLAG_VALID_ID;
|
|
568
568
|
|
|
569
|
-
if (
|
|
569
|
+
if (git_oid_is_zero(&b_file->id) &&
|
|
570
570
|
diff->new_src == GIT_ITERATOR_TYPE_WORKDIR &&
|
|
571
571
|
!git_diff__oid_for_file(&b_file->id,
|
|
572
572
|
diff, b_file->path, b_file->mode, b_file->size))
|
|
@@ -816,22 +816,24 @@ int git_diff_find_similar(
|
|
|
816
816
|
diff_find_match *best_match;
|
|
817
817
|
git_diff_file swap;
|
|
818
818
|
|
|
819
|
+
assert(diff);
|
|
820
|
+
|
|
819
821
|
if ((error = normalize_find_opts(diff, &opts, given_opts)) < 0)
|
|
820
822
|
return error;
|
|
821
823
|
|
|
822
824
|
num_deltas = diff->deltas.length;
|
|
823
825
|
|
|
824
826
|
/* TODO: maybe abort if deltas.length > rename_limit ??? */
|
|
825
|
-
if (!git__is_uint32(num_deltas))
|
|
827
|
+
if (!num_deltas || !git__is_uint32(num_deltas))
|
|
826
828
|
goto cleanup;
|
|
827
829
|
|
|
828
830
|
/* No flags set; nothing to do */
|
|
829
831
|
if ((opts.flags & GIT_DIFF_FIND_ALL) == 0)
|
|
830
832
|
goto cleanup;
|
|
831
833
|
|
|
832
|
-
|
|
834
|
+
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&sigcache_size, num_deltas, 2);
|
|
833
835
|
sigcache = git__calloc(sigcache_size, sizeof(void *));
|
|
834
|
-
|
|
836
|
+
GIT_ERROR_CHECK_ALLOC(sigcache);
|
|
835
837
|
|
|
836
838
|
/* Label rename sources and targets
|
|
837
839
|
*
|
|
@@ -854,13 +856,13 @@ int git_diff_find_similar(
|
|
|
854
856
|
goto cleanup;
|
|
855
857
|
|
|
856
858
|
src2tgt = git__calloc(num_deltas, sizeof(diff_find_match));
|
|
857
|
-
|
|
859
|
+
GIT_ERROR_CHECK_ALLOC(src2tgt);
|
|
858
860
|
tgt2src = git__calloc(num_deltas, sizeof(diff_find_match));
|
|
859
|
-
|
|
861
|
+
GIT_ERROR_CHECK_ALLOC(tgt2src);
|
|
860
862
|
|
|
861
863
|
if (FLAG_SET(&opts, GIT_DIFF_FIND_COPIES)) {
|
|
862
864
|
tgt2src_copy = git__calloc(num_deltas, sizeof(diff_find_match));
|
|
863
|
-
|
|
865
|
+
GIT_ERROR_CHECK_ALLOC(tgt2src_copy);
|
|
864
866
|
}
|
|
865
867
|
|
|
866
868
|
/*
|
|
@@ -52,7 +52,7 @@ static int git_xdiff_parse_hunk(git_diff_hunk *hunk, const char *header)
|
|
|
52
52
|
return 0;
|
|
53
53
|
|
|
54
54
|
fail:
|
|
55
|
-
|
|
55
|
+
git_error_set(GIT_ERROR_INVALID, "malformed hunk header from xdiff");
|
|
56
56
|
return -1;
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -101,7 +101,7 @@ static int diff_update_lines(
|
|
|
101
101
|
info->new_lineno += (int)line->num_lines;
|
|
102
102
|
break;
|
|
103
103
|
default:
|
|
104
|
-
|
|
104
|
+
git_error_set(GIT_ERROR_INVALID, "unknown diff line origin %02x",
|
|
105
105
|
(unsigned int)line->origin);
|
|
106
106
|
return -1;
|
|
107
107
|
}
|
|
@@ -224,7 +224,7 @@ static int git_xdiff(git_patch_generated_output *output, git_patch_generated *pa
|
|
|
224
224
|
|
|
225
225
|
if (info.xd_old_data.size > GIT_XDIFF_MAX_SIZE ||
|
|
226
226
|
info.xd_new_data.size > GIT_XDIFF_MAX_SIZE) {
|
|
227
|
-
|
|
227
|
+
git_error_set(GIT_ERROR_INVALID, "files too large for diff");
|
|
228
228
|
return -1;
|
|
229
229
|
}
|
|
230
230
|
|
data/vendor/libgit2/src/errors.c
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
static git_error g_git_oom_error = {
|
|
19
19
|
"Out of memory",
|
|
20
|
-
|
|
20
|
+
GIT_ERROR_NOMEMORY
|
|
21
21
|
};
|
|
22
22
|
|
|
23
23
|
static void set_error_from_buffer(int error_class)
|
|
@@ -44,31 +44,36 @@ static void set_error(int error_class, char *string)
|
|
|
44
44
|
set_error_from_buffer(error_class);
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
void
|
|
47
|
+
void git_error_set_oom(void)
|
|
48
48
|
{
|
|
49
49
|
GIT_GLOBAL->last_error = &g_git_oom_error;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
void
|
|
52
|
+
void git_error_set(int error_class, const char *fmt, ...)
|
|
53
|
+
{
|
|
54
|
+
va_list ap;
|
|
55
|
+
|
|
56
|
+
va_start(ap, fmt);
|
|
57
|
+
git_error_vset(error_class, fmt, ap);
|
|
58
|
+
va_end(ap);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
void git_error_vset(int error_class, const char *fmt, va_list ap)
|
|
53
62
|
{
|
|
54
|
-
va_list arglist;
|
|
55
63
|
#ifdef GIT_WIN32
|
|
56
|
-
DWORD win32_error_code = (error_class ==
|
|
64
|
+
DWORD win32_error_code = (error_class == GIT_ERROR_OS) ? GetLastError() : 0;
|
|
57
65
|
#endif
|
|
58
|
-
int error_code = (error_class ==
|
|
66
|
+
int error_code = (error_class == GIT_ERROR_OS) ? errno : 0;
|
|
59
67
|
git_buf *buf = &GIT_GLOBAL->error_buf;
|
|
60
68
|
|
|
61
69
|
git_buf_clear(buf);
|
|
62
|
-
if (
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
va_end(arglist);
|
|
66
|
-
|
|
67
|
-
if (error_class == GITERR_OS)
|
|
70
|
+
if (fmt) {
|
|
71
|
+
git_buf_vprintf(buf, fmt, ap);
|
|
72
|
+
if (error_class == GIT_ERROR_OS)
|
|
68
73
|
git_buf_PUTS(buf, ": ");
|
|
69
74
|
}
|
|
70
75
|
|
|
71
|
-
if (error_class ==
|
|
76
|
+
if (error_class == GIT_ERROR_OS) {
|
|
72
77
|
#ifdef GIT_WIN32
|
|
73
78
|
char * win32_error = git_win32_get_error_message(win32_error_code);
|
|
74
79
|
if (win32_error) {
|
|
@@ -90,7 +95,7 @@ void giterr_set(int error_class, const char *string, ...)
|
|
|
90
95
|
set_error_from_buffer(error_class);
|
|
91
96
|
}
|
|
92
97
|
|
|
93
|
-
void
|
|
98
|
+
void git_error_set_str(int error_class, const char *string)
|
|
94
99
|
{
|
|
95
100
|
git_buf *buf = &GIT_GLOBAL->error_buf;
|
|
96
101
|
|
|
@@ -105,22 +110,7 @@ void giterr_set_str(int error_class, const char *string)
|
|
|
105
110
|
set_error_from_buffer(error_class);
|
|
106
111
|
}
|
|
107
112
|
|
|
108
|
-
|
|
109
|
-
{
|
|
110
|
-
char error_buf[1024];
|
|
111
|
-
|
|
112
|
-
assert(error_code);
|
|
113
|
-
|
|
114
|
-
regerror(error_code, regex, error_buf, sizeof(error_buf));
|
|
115
|
-
giterr_set_str(GITERR_REGEX, error_buf);
|
|
116
|
-
|
|
117
|
-
if (error_code == REG_NOMATCH)
|
|
118
|
-
return GIT_ENOTFOUND;
|
|
119
|
-
|
|
120
|
-
return GIT_EINVALIDSPEC;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
void giterr_clear(void)
|
|
113
|
+
void git_error_clear(void)
|
|
124
114
|
{
|
|
125
115
|
if (GIT_GLOBAL->last_error != NULL) {
|
|
126
116
|
set_error(0, NULL);
|
|
@@ -133,12 +123,12 @@ void giterr_clear(void)
|
|
|
133
123
|
#endif
|
|
134
124
|
}
|
|
135
125
|
|
|
136
|
-
const git_error *
|
|
126
|
+
const git_error *git_error_last(void)
|
|
137
127
|
{
|
|
138
128
|
return GIT_GLOBAL->last_error;
|
|
139
129
|
}
|
|
140
130
|
|
|
141
|
-
int
|
|
131
|
+
int git_error_state_capture(git_error_state *state, int error_code)
|
|
142
132
|
{
|
|
143
133
|
git_error *error = GIT_GLOBAL->last_error;
|
|
144
134
|
git_buf *error_buf = &GIT_GLOBAL->error_buf;
|
|
@@ -160,19 +150,19 @@ int giterr_state_capture(git_error_state *state, int error_code)
|
|
|
160
150
|
state->error_msg.message = git_buf_detach(error_buf);
|
|
161
151
|
}
|
|
162
152
|
|
|
163
|
-
|
|
153
|
+
git_error_clear();
|
|
164
154
|
return error_code;
|
|
165
155
|
}
|
|
166
156
|
|
|
167
|
-
int
|
|
157
|
+
int git_error_state_restore(git_error_state *state)
|
|
168
158
|
{
|
|
169
159
|
int ret = 0;
|
|
170
160
|
|
|
171
|
-
|
|
161
|
+
git_error_clear();
|
|
172
162
|
|
|
173
163
|
if (state && state->error_msg.message) {
|
|
174
164
|
if (state->oom)
|
|
175
|
-
|
|
165
|
+
git_error_set_oom();
|
|
176
166
|
else
|
|
177
167
|
set_error(state->error_msg.klass, state->error_msg.message);
|
|
178
168
|
|
|
@@ -183,7 +173,7 @@ int giterr_state_restore(git_error_state *state)
|
|
|
183
173
|
return ret;
|
|
184
174
|
}
|
|
185
175
|
|
|
186
|
-
void
|
|
176
|
+
void git_error_state_free(git_error_state *state)
|
|
187
177
|
{
|
|
188
178
|
if (!state)
|
|
189
179
|
return;
|
|
@@ -194,7 +184,7 @@ void giterr_state_free(git_error_state *state)
|
|
|
194
184
|
memset(state, 0, sizeof(git_error_state));
|
|
195
185
|
}
|
|
196
186
|
|
|
197
|
-
int
|
|
187
|
+
int git_error_system_last(void)
|
|
198
188
|
{
|
|
199
189
|
#ifdef GIT_WIN32
|
|
200
190
|
return GetLastError();
|
|
@@ -203,7 +193,7 @@ int giterr_system_last(void)
|
|
|
203
193
|
#endif
|
|
204
194
|
}
|
|
205
195
|
|
|
206
|
-
void
|
|
196
|
+
void git_error_system_set(int code)
|
|
207
197
|
{
|
|
208
198
|
#ifdef GIT_WIN32
|
|
209
199
|
SetLastError(code);
|
|
@@ -211,3 +201,25 @@ void giterr_system_set(int code)
|
|
|
211
201
|
errno = code;
|
|
212
202
|
#endif
|
|
213
203
|
}
|
|
204
|
+
|
|
205
|
+
/* Deprecated error values and functions */
|
|
206
|
+
|
|
207
|
+
const git_error *giterr_last(void)
|
|
208
|
+
{
|
|
209
|
+
return git_error_last();
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
void giterr_clear(void)
|
|
213
|
+
{
|
|
214
|
+
git_error_clear();
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
void giterr_set_str(int error_class, const char *string)
|
|
218
|
+
{
|
|
219
|
+
git_error_set_str(error_class, string);
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
void giterr_set_oom(void)
|
|
223
|
+
{
|
|
224
|
+
git_error_set_oom();
|
|
225
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
|
3
|
+
*
|
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef INCLUDE_errors_h__
|
|
9
|
+
#define INCLUDE_errors_h__
|
|
10
|
+
|
|
11
|
+
#include "common.h"
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
* Set the error message for this thread, formatting as needed.
|
|
15
|
+
*/
|
|
16
|
+
void git_error_set(int error_class, const char *fmt, ...) GIT_FORMAT_PRINTF(2, 3);
|
|
17
|
+
void git_error_vset(int error_class, const char *fmt, va_list ap);
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Set error message for user callback if needed.
|
|
21
|
+
*
|
|
22
|
+
* If the error code in non-zero and no error message is set, this
|
|
23
|
+
* sets a generic error message.
|
|
24
|
+
*
|
|
25
|
+
* @return This always returns the `error_code` parameter.
|
|
26
|
+
*/
|
|
27
|
+
GIT_INLINE(int) git_error_set_after_callback_function(
|
|
28
|
+
int error_code, const char *action)
|
|
29
|
+
{
|
|
30
|
+
if (error_code) {
|
|
31
|
+
const git_error *e = git_error_last();
|
|
32
|
+
if (!e || !e->message)
|
|
33
|
+
git_error_set(e ? e->klass : GIT_ERROR_CALLBACK,
|
|
34
|
+
"%s callback returned %d", action, error_code);
|
|
35
|
+
}
|
|
36
|
+
return error_code;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
#ifdef GIT_WIN32
|
|
40
|
+
#define git_error_set_after_callback(code) \
|
|
41
|
+
git_error_set_after_callback_function((code), __FUNCTION__)
|
|
42
|
+
#else
|
|
43
|
+
#define git_error_set_after_callback(code) \
|
|
44
|
+
git_error_set_after_callback_function((code), __func__)
|
|
45
|
+
#endif
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Gets the system error code for this thread.
|
|
49
|
+
*/
|
|
50
|
+
int git_error_system_last(void);
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Sets the system error code for this thread.
|
|
54
|
+
*/
|
|
55
|
+
void git_error_system_set(int code);
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Structure to preserve libgit2 error state
|
|
59
|
+
*/
|
|
60
|
+
typedef struct {
|
|
61
|
+
int error_code;
|
|
62
|
+
unsigned int oom : 1;
|
|
63
|
+
git_error error_msg;
|
|
64
|
+
} git_error_state;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Capture current error state to restore later, returning error code.
|
|
68
|
+
* If `error_code` is zero, this does not clear the current error state.
|
|
69
|
+
* You must either restore this error state, or free it.
|
|
70
|
+
*/
|
|
71
|
+
extern int git_error_state_capture(git_error_state *state, int error_code);
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Restore error state to a previous value, returning saved error code.
|
|
75
|
+
*/
|
|
76
|
+
extern int git_error_state_restore(git_error_state *state);
|
|
77
|
+
|
|
78
|
+
/** Free an error state. */
|
|
79
|
+
extern void git_error_state_free(git_error_state *state);
|
|
80
|
+
|
|
81
|
+
#endif
|
|
@@ -15,15 +15,21 @@
|
|
|
15
15
|
#cmakedefine GIT_USE_STAT_MTIMESPEC 1
|
|
16
16
|
#cmakedefine GIT_USE_STAT_MTIME_NSEC 1
|
|
17
17
|
#cmakedefine GIT_USE_FUTIMENS 1
|
|
18
|
-
|
|
18
|
+
|
|
19
|
+
#cmakedefine GIT_REGEX_REGCOMP_L
|
|
20
|
+
#cmakedefine GIT_REGEX_REGCOMP
|
|
21
|
+
#cmakedefine GIT_REGEX_PCRE
|
|
22
|
+
#cmakedefine GIT_REGEX_PCRE2
|
|
23
|
+
#cmakedefine GIT_REGEX_BUILTIN 1
|
|
19
24
|
|
|
20
25
|
#cmakedefine GIT_SSH 1
|
|
21
26
|
#cmakedefine GIT_SSH_MEMORY_CREDENTIALS 1
|
|
22
27
|
|
|
28
|
+
#cmakedefine GIT_NTLM 1
|
|
23
29
|
#cmakedefine GIT_GSSAPI 1
|
|
24
|
-
#cmakedefine
|
|
25
|
-
#cmakedefine GIT_CURL 1
|
|
30
|
+
#cmakedefine GIT_GSSFRAMEWORK 1
|
|
26
31
|
|
|
32
|
+
#cmakedefine GIT_WINHTTP 1
|
|
27
33
|
#cmakedefine GIT_HTTPS 1
|
|
28
34
|
#cmakedefine GIT_OPENSSL 1
|
|
29
35
|
#cmakedefine GIT_SECURE_TRANSPORT 1
|