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
data/vendor/libgit2/src/sysdir.c
CHANGED
|
@@ -57,12 +57,12 @@ static int get_passwd_home(git_buf *out, uid_t uid)
|
|
|
57
57
|
} while (error == ERANGE && buflen <= 8192);
|
|
58
58
|
|
|
59
59
|
if (error) {
|
|
60
|
-
|
|
60
|
+
git_error_set(GIT_ERROR_OS, "failed to get passwd entry");
|
|
61
61
|
goto out;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
64
|
if (!pwdptr) {
|
|
65
|
-
|
|
65
|
+
git_error_set(GIT_ERROR_OS, "no passwd entry found for user");
|
|
66
66
|
goto out;
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -82,21 +82,31 @@ static int git_sysdir_guess_global_dirs(git_buf *out)
|
|
|
82
82
|
#else
|
|
83
83
|
int error;
|
|
84
84
|
uid_t uid, euid;
|
|
85
|
+
const char *sandbox_id;
|
|
85
86
|
|
|
86
87
|
uid = getuid();
|
|
87
88
|
euid = geteuid();
|
|
88
89
|
|
|
90
|
+
/**
|
|
91
|
+
* If APP_SANDBOX_CONTAINER_ID is set, we are running in a
|
|
92
|
+
* sandboxed environment on macOS.
|
|
93
|
+
*/
|
|
94
|
+
sandbox_id = getenv("APP_SANDBOX_CONTAINER_ID");
|
|
95
|
+
|
|
89
96
|
/*
|
|
90
97
|
* In case we are running setuid, use the configuration
|
|
91
98
|
* of the effective user.
|
|
99
|
+
*
|
|
100
|
+
* If we are running in a sandboxed environment on macOS,
|
|
101
|
+
* we have to get the HOME dir from the password entry file.
|
|
92
102
|
*/
|
|
93
|
-
if (uid == euid)
|
|
103
|
+
if (!sandbox_id && uid == euid)
|
|
94
104
|
error = git__getenv(out, "HOME");
|
|
95
105
|
else
|
|
96
106
|
error = get_passwd_home(out, euid);
|
|
97
107
|
|
|
98
108
|
if (error == GIT_ENOTFOUND) {
|
|
99
|
-
|
|
109
|
+
git_error_clear();
|
|
100
110
|
error = 0;
|
|
101
111
|
}
|
|
102
112
|
|
|
@@ -132,7 +142,7 @@ static int git_sysdir_guess_xdg_dirs(git_buf *out)
|
|
|
132
142
|
}
|
|
133
143
|
|
|
134
144
|
if (error == GIT_ENOTFOUND) {
|
|
135
|
-
|
|
145
|
+
git_error_clear();
|
|
136
146
|
error = 0;
|
|
137
147
|
}
|
|
138
148
|
|
|
@@ -189,7 +199,7 @@ static int git_sysdir_check_selector(git_sysdir_t which)
|
|
|
189
199
|
if (which < ARRAY_SIZE(git_sysdir__dirs))
|
|
190
200
|
return 0;
|
|
191
201
|
|
|
192
|
-
|
|
202
|
+
git_error_set(GIT_ERROR_INVALID, "config directory selector out of range");
|
|
193
203
|
return -1;
|
|
194
204
|
}
|
|
195
205
|
|
|
@@ -200,7 +210,7 @@ int git_sysdir_get(const git_buf **out, git_sysdir_t which)
|
|
|
200
210
|
|
|
201
211
|
*out = NULL;
|
|
202
212
|
|
|
203
|
-
|
|
213
|
+
GIT_ERROR_CHECK_ERROR(git_sysdir_check_selector(which));
|
|
204
214
|
|
|
205
215
|
*out = &git_sysdir__dirs[which].buf;
|
|
206
216
|
return 0;
|
|
@@ -213,11 +223,11 @@ int git_sysdir_get_str(
|
|
|
213
223
|
{
|
|
214
224
|
const git_buf *path = NULL;
|
|
215
225
|
|
|
216
|
-
|
|
217
|
-
|
|
226
|
+
GIT_ERROR_CHECK_ERROR(git_sysdir_check_selector(which));
|
|
227
|
+
GIT_ERROR_CHECK_ERROR(git_sysdir_get(&path, which));
|
|
218
228
|
|
|
219
229
|
if (!out || path->size >= outlen) {
|
|
220
|
-
|
|
230
|
+
git_error_set(GIT_ERROR_NOMEMORY, "buffer is too short for the path");
|
|
221
231
|
return GIT_EBUFS;
|
|
222
232
|
}
|
|
223
233
|
|
|
@@ -232,7 +242,7 @@ int git_sysdir_set(git_sysdir_t which, const char *search_path)
|
|
|
232
242
|
const char *expand_path = NULL;
|
|
233
243
|
git_buf merge = GIT_BUF_INIT;
|
|
234
244
|
|
|
235
|
-
|
|
245
|
+
GIT_ERROR_CHECK_ERROR(git_sysdir_check_selector(which));
|
|
236
246
|
|
|
237
247
|
if (search_path != NULL)
|
|
238
248
|
expand_path = strstr(search_path, PATH_MAGIC);
|
|
@@ -281,7 +291,7 @@ static int git_sysdir_find_in_dirlist(
|
|
|
281
291
|
const char *scan, *next = NULL;
|
|
282
292
|
const git_buf *syspath;
|
|
283
293
|
|
|
284
|
-
|
|
294
|
+
GIT_ERROR_CHECK_ERROR(git_sysdir_get(&syspath, which));
|
|
285
295
|
if (!syspath || !git_buf_len(syspath))
|
|
286
296
|
goto done;
|
|
287
297
|
|
|
@@ -298,9 +308,9 @@ static int git_sysdir_find_in_dirlist(
|
|
|
298
308
|
if (!len)
|
|
299
309
|
continue;
|
|
300
310
|
|
|
301
|
-
|
|
311
|
+
GIT_ERROR_CHECK_ERROR(git_buf_set(path, scan, len));
|
|
302
312
|
if (name)
|
|
303
|
-
|
|
313
|
+
GIT_ERROR_CHECK_ERROR(git_buf_joinpath(path, path->ptr, name));
|
|
304
314
|
|
|
305
315
|
if (git_path_exists(path->ptr))
|
|
306
316
|
return 0;
|
|
@@ -308,7 +318,7 @@ static int git_sysdir_find_in_dirlist(
|
|
|
308
318
|
|
|
309
319
|
done:
|
|
310
320
|
git_buf_dispose(path);
|
|
311
|
-
|
|
321
|
+
git_error_set(GIT_ERROR_OS, "the %s file '%s' doesn't exist", label, name);
|
|
312
322
|
return GIT_ENOTFOUND;
|
|
313
323
|
}
|
|
314
324
|
|
data/vendor/libgit2/src/tag.c
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#include "commit.h"
|
|
11
11
|
#include "signature.h"
|
|
12
12
|
#include "message.h"
|
|
13
|
+
#include "wildmatch.h"
|
|
13
14
|
#include "git2/object.h"
|
|
14
15
|
#include "git2/repository.h"
|
|
15
16
|
#include "git2/signature.h"
|
|
@@ -36,7 +37,7 @@ const git_oid *git_tag_target_id(const git_tag *t)
|
|
|
36
37
|
return &t->target;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
git_object_t git_tag_target_type(const git_tag *t)
|
|
40
41
|
{
|
|
41
42
|
assert(t);
|
|
42
43
|
return t->type;
|
|
@@ -61,7 +62,7 @@ const char *git_tag_message(const git_tag *t)
|
|
|
61
62
|
|
|
62
63
|
static int tag_error(const char *str)
|
|
63
64
|
{
|
|
64
|
-
|
|
65
|
+
git_error_set(GIT_ERROR_TAG, "failed to parse tag: %s", str);
|
|
65
66
|
return -1;
|
|
66
67
|
}
|
|
67
68
|
|
|
@@ -70,10 +71,9 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
70
71
|
static const char *tag_types[] = {
|
|
71
72
|
NULL, "commit\n", "tree\n", "blob\n", "tag\n"
|
|
72
73
|
};
|
|
73
|
-
|
|
74
|
-
unsigned int i;
|
|
75
74
|
size_t text_len, alloc_len;
|
|
76
|
-
char *search;
|
|
75
|
+
const char *search;
|
|
76
|
+
unsigned int i;
|
|
77
77
|
|
|
78
78
|
if (git_oid__parse(&tag->target, &buffer, buffer_end, "object ") < 0)
|
|
79
79
|
return tag_error("object field invalid");
|
|
@@ -85,7 +85,7 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
85
85
|
return tag_error("type field not found");
|
|
86
86
|
buffer += 5;
|
|
87
87
|
|
|
88
|
-
tag->type =
|
|
88
|
+
tag->type = GIT_OBJECT_INVALID;
|
|
89
89
|
|
|
90
90
|
for (i = 1; i < ARRAY_SIZE(tag_types); ++i) {
|
|
91
91
|
size_t type_length = strlen(tag_types[i]);
|
|
@@ -100,7 +100,7 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
100
100
|
}
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
if (tag->type ==
|
|
103
|
+
if (tag->type == GIT_OBJECT_INVALID)
|
|
104
104
|
return tag_error("invalid object type");
|
|
105
105
|
|
|
106
106
|
if (buffer + 4 >= buffer_end)
|
|
@@ -117,9 +117,9 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
117
117
|
|
|
118
118
|
text_len = search - buffer;
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, text_len, 1);
|
|
121
121
|
tag->tag_name = git__malloc(alloc_len);
|
|
122
|
-
|
|
122
|
+
GIT_ERROR_CHECK_ALLOC(tag->tag_name);
|
|
123
123
|
|
|
124
124
|
memcpy(tag->tag_name, buffer, text_len);
|
|
125
125
|
tag->tag_name[text_len] = '\0';
|
|
@@ -129,7 +129,7 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
129
129
|
tag->tagger = NULL;
|
|
130
130
|
if (buffer < buffer_end && *buffer != '\n') {
|
|
131
131
|
tag->tagger = git__malloc(sizeof(git_signature));
|
|
132
|
-
|
|
132
|
+
GIT_ERROR_CHECK_ALLOC(tag->tagger);
|
|
133
133
|
|
|
134
134
|
if (git_signature__parse(tag->tagger, &buffer, buffer_end, "tagger ", '\n') < 0)
|
|
135
135
|
return -1;
|
|
@@ -138,8 +138,9 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
138
138
|
tag->message = NULL;
|
|
139
139
|
if (buffer < buffer_end) {
|
|
140
140
|
/* If we're not at the end of the header, search for it */
|
|
141
|
-
if(
|
|
142
|
-
search =
|
|
141
|
+
if(*buffer != '\n') {
|
|
142
|
+
search = git__memmem(buffer, buffer_end - buffer,
|
|
143
|
+
"\n\n", 2);
|
|
143
144
|
if (search)
|
|
144
145
|
buffer = search + 1;
|
|
145
146
|
else
|
|
@@ -148,9 +149,9 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
148
149
|
|
|
149
150
|
text_len = buffer_end - ++buffer;
|
|
150
151
|
|
|
151
|
-
|
|
152
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, text_len, 1);
|
|
152
153
|
tag->message = git__malloc(alloc_len);
|
|
153
|
-
|
|
154
|
+
GIT_ERROR_CHECK_ALLOC(tag->message);
|
|
154
155
|
|
|
155
156
|
memcpy(tag->message, buffer, text_len);
|
|
156
157
|
tag->message[text_len] = '\0';
|
|
@@ -159,6 +160,11 @@ static int tag_parse(git_tag *tag, const char *buffer, const char *buffer_end)
|
|
|
159
160
|
return 0;
|
|
160
161
|
}
|
|
161
162
|
|
|
163
|
+
int git_tag__parse_raw(void *_tag, const char *data, size_t size)
|
|
164
|
+
{
|
|
165
|
+
return tag_parse(_tag, data, data + size);
|
|
166
|
+
}
|
|
167
|
+
|
|
162
168
|
int git_tag__parse(void *_tag, git_odb_object *odb_obj)
|
|
163
169
|
{
|
|
164
170
|
git_tag *tag = _tag;
|
|
@@ -226,7 +232,7 @@ static int write_tag_annotation(
|
|
|
226
232
|
if (git_repository_odb__weakptr(&odb, repo) < 0)
|
|
227
233
|
goto on_error;
|
|
228
234
|
|
|
229
|
-
if (git_odb_write(oid, odb, tag.ptr, tag.size,
|
|
235
|
+
if (git_odb_write(oid, odb, tag.ptr, tag.size, GIT_OBJECT_TAG) < 0)
|
|
230
236
|
goto on_error;
|
|
231
237
|
|
|
232
238
|
git_buf_dispose(&tag);
|
|
@@ -234,7 +240,7 @@ static int write_tag_annotation(
|
|
|
234
240
|
|
|
235
241
|
on_error:
|
|
236
242
|
git_buf_dispose(&tag);
|
|
237
|
-
|
|
243
|
+
git_error_set(GIT_ERROR_OBJECT, "failed to create tag annotation");
|
|
238
244
|
return -1;
|
|
239
245
|
}
|
|
240
246
|
|
|
@@ -257,7 +263,7 @@ static int git_tag_create__internal(
|
|
|
257
263
|
assert(!create_tag_annotation || (tagger && message));
|
|
258
264
|
|
|
259
265
|
if (git_object_owner(target) != repo) {
|
|
260
|
-
|
|
266
|
+
git_error_set(GIT_ERROR_INVALID, "the given target does not belong to this repository");
|
|
261
267
|
return -1;
|
|
262
268
|
}
|
|
263
269
|
|
|
@@ -269,7 +275,7 @@ static int git_tag_create__internal(
|
|
|
269
275
|
* reference unless overwriting has explicitly been requested **/
|
|
270
276
|
if (error == 0 && !allow_ref_overwrite) {
|
|
271
277
|
git_buf_dispose(&ref_name);
|
|
272
|
-
|
|
278
|
+
git_error_set(GIT_ERROR_TAG, "tag already exists");
|
|
273
279
|
return GIT_EEXISTS;
|
|
274
280
|
}
|
|
275
281
|
|
|
@@ -322,7 +328,7 @@ int git_tag_create_lightweight(
|
|
|
322
328
|
return git_tag_create__internal(oid, repo, tag_name, target, NULL, NULL, allow_ref_overwrite, 0);
|
|
323
329
|
}
|
|
324
330
|
|
|
325
|
-
int
|
|
331
|
+
int git_tag_create_from_buffer(git_oid *oid, git_repository *repo, const char *buffer, int allow_ref_overwrite)
|
|
326
332
|
{
|
|
327
333
|
git_tag tag;
|
|
328
334
|
int error;
|
|
@@ -349,7 +355,7 @@ int git_tag_create_frombuffer(git_oid *oid, git_repository *repo, const char *bu
|
|
|
349
355
|
goto on_error;
|
|
350
356
|
|
|
351
357
|
if (tag.type != target_obj->cached.type) {
|
|
352
|
-
|
|
358
|
+
git_error_set(GIT_ERROR_TAG, "the type for the given target is invalid");
|
|
353
359
|
goto on_error;
|
|
354
360
|
}
|
|
355
361
|
|
|
@@ -366,13 +372,13 @@ int git_tag_create_frombuffer(git_oid *oid, git_repository *repo, const char *bu
|
|
|
366
372
|
/** Ensure the tag name doesn't conflict with an already existing
|
|
367
373
|
* reference unless overwriting has explicitly been requested **/
|
|
368
374
|
if (error == 0 && !allow_ref_overwrite) {
|
|
369
|
-
|
|
375
|
+
git_error_set(GIT_ERROR_TAG, "tag already exists");
|
|
370
376
|
return GIT_EEXISTS;
|
|
371
377
|
}
|
|
372
378
|
|
|
373
379
|
/* write the buffer */
|
|
374
380
|
if ((error = git_odb_open_wstream(
|
|
375
|
-
&stream, odb, strlen(buffer),
|
|
381
|
+
&stream, odb, strlen(buffer), GIT_OBJECT_TAG)) < 0)
|
|
376
382
|
return error;
|
|
377
383
|
|
|
378
384
|
if (!(error = git_odb_stream_write(stream, buffer, strlen(buffer))))
|
|
@@ -438,7 +444,7 @@ static int tags_cb(const char *ref, void *data)
|
|
|
438
444
|
|
|
439
445
|
if (!(error = git_reference_name_to_id(&oid, d->repo, ref))) {
|
|
440
446
|
if ((error = d->cb(ref, &oid, d->cb_data)) != 0)
|
|
441
|
-
|
|
447
|
+
git_error_set_after_callback_function(error, "git_tag_foreach");
|
|
442
448
|
}
|
|
443
449
|
|
|
444
450
|
return error;
|
|
@@ -470,10 +476,10 @@ static int tag_list_cb(const char *tag_name, git_oid *oid, void *data)
|
|
|
470
476
|
GIT_UNUSED(oid);
|
|
471
477
|
|
|
472
478
|
if (!*filter->pattern ||
|
|
473
|
-
|
|
479
|
+
wildmatch(filter->pattern, tag_name + GIT_REFS_TAGS_DIR_LEN, 0) == 0)
|
|
474
480
|
{
|
|
475
481
|
char *matched = git__strdup(tag_name + GIT_REFS_TAGS_DIR_LEN);
|
|
476
|
-
|
|
482
|
+
GIT_ERROR_CHECK_ALLOC(matched);
|
|
477
483
|
|
|
478
484
|
return git_vector_insert(filter->taglist, matched);
|
|
479
485
|
}
|
|
@@ -513,5 +519,12 @@ int git_tag_list(git_strarray *tag_names, git_repository *repo)
|
|
|
513
519
|
|
|
514
520
|
int git_tag_peel(git_object **tag_target, const git_tag *tag)
|
|
515
521
|
{
|
|
516
|
-
return git_object_peel(tag_target, (const git_object *)tag,
|
|
522
|
+
return git_object_peel(tag_target, (const git_object *)tag, GIT_OBJECT_ANY);
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
/* Deprecated Functions */
|
|
526
|
+
|
|
527
|
+
int git_tag_create_frombuffer(git_oid *oid, git_repository *repo, const char *buffer, int allow_ref_overwrite)
|
|
528
|
+
{
|
|
529
|
+
return git_tag_create_from_buffer(oid, repo, buffer, allow_ref_overwrite);
|
|
517
530
|
}
|
data/vendor/libgit2/src/tag.h
CHANGED
|
@@ -17,7 +17,7 @@ struct git_tag {
|
|
|
17
17
|
git_object object;
|
|
18
18
|
|
|
19
19
|
git_oid target;
|
|
20
|
-
|
|
20
|
+
git_object_t type;
|
|
21
21
|
|
|
22
22
|
char *tag_name;
|
|
23
23
|
git_signature *tagger;
|
|
@@ -26,5 +26,6 @@ struct git_tag {
|
|
|
26
26
|
|
|
27
27
|
void git_tag__free(void *tag);
|
|
28
28
|
int git_tag__parse(void *tag, git_odb_object *obj);
|
|
29
|
+
int git_tag__parse_raw(void *tag, const char *data, size_t size);
|
|
29
30
|
|
|
30
31
|
#endif
|
data/vendor/libgit2/src/trace.c
CHANGED
|
@@ -17,7 +17,7 @@ struct git_trace_data git_trace__data = {0};
|
|
|
17
17
|
|
|
18
18
|
#endif
|
|
19
19
|
|
|
20
|
-
int git_trace_set(git_trace_level_t level,
|
|
20
|
+
int git_trace_set(git_trace_level_t level, git_trace_cb callback)
|
|
21
21
|
{
|
|
22
22
|
#ifdef GIT_TRACE
|
|
23
23
|
assert(level == 0 || callback != NULL);
|
|
@@ -31,7 +31,7 @@ int git_trace_set(git_trace_level_t level, git_trace_callback callback)
|
|
|
31
31
|
GIT_UNUSED(level);
|
|
32
32
|
GIT_UNUSED(callback);
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
git_error_set(GIT_ERROR_INVALID,
|
|
35
35
|
"this version of libgit2 was not built with tracing.");
|
|
36
36
|
return -1;
|
|
37
37
|
#endif
|
data/vendor/libgit2/src/trace.h
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
|
|
17
17
|
struct git_trace_data {
|
|
18
18
|
git_trace_level_t level;
|
|
19
|
-
|
|
19
|
+
git_trace_cb callback;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
extern struct git_trace_data git_trace__data;
|
|
@@ -25,7 +25,7 @@ GIT_INLINE(void) git_trace__write_fmt(
|
|
|
25
25
|
git_trace_level_t level,
|
|
26
26
|
const char *fmt, ...)
|
|
27
27
|
{
|
|
28
|
-
|
|
28
|
+
git_trace_cb callback = git_trace__data.callback;
|
|
29
29
|
git_buf message = GIT_BUF_INIT;
|
|
30
30
|
va_list ap;
|
|
31
31
|
|
|
@@ -42,15 +42,19 @@ static const char *next_line(const char *str)
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
/*
|
|
45
|
-
* Return the position of the start of the last line. If len is 0, return
|
|
45
|
+
* Return the position of the start of the last line. If len is 0, return 0.
|
|
46
46
|
*/
|
|
47
|
-
static
|
|
47
|
+
static bool last_line(size_t *out, const char *buf, size_t len)
|
|
48
48
|
{
|
|
49
|
-
|
|
49
|
+
size_t i;
|
|
50
|
+
|
|
51
|
+
*out = 0;
|
|
52
|
+
|
|
50
53
|
if (len == 0)
|
|
51
|
-
return
|
|
54
|
+
return false;
|
|
52
55
|
if (len == 1)
|
|
53
|
-
return
|
|
56
|
+
return true;
|
|
57
|
+
|
|
54
58
|
/*
|
|
55
59
|
* Skip the last character (in addition to the null terminator),
|
|
56
60
|
* because if the last character is a newline, it is considered as part
|
|
@@ -58,31 +62,37 @@ static int last_line(const char *buf, size_t len)
|
|
|
58
62
|
*/
|
|
59
63
|
i = len - 2;
|
|
60
64
|
|
|
61
|
-
for (; i
|
|
62
|
-
if (buf[i] == '\n')
|
|
63
|
-
|
|
65
|
+
for (; i > 0; i--) {
|
|
66
|
+
if (buf[i] == '\n') {
|
|
67
|
+
*out = i + 1;
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
64
70
|
}
|
|
65
|
-
return
|
|
71
|
+
return true;
|
|
66
72
|
}
|
|
67
73
|
|
|
68
74
|
/*
|
|
69
75
|
* If the given line is of the form
|
|
70
|
-
* "<token><optional whitespace><separator>..." or "<separator>...",
|
|
71
|
-
* location of the separator
|
|
72
|
-
* is allowed there primarily to allow things
|
|
73
|
-
* "Bug" and <separator> is "#".
|
|
76
|
+
* "<token><optional whitespace><separator>..." or "<separator>...", sets out
|
|
77
|
+
* to the location of the separator and returns true. Otherwise, returns
|
|
78
|
+
* false. The optional whitespace is allowed there primarily to allow things
|
|
79
|
+
* like "Bug #43" where <token> is "Bug" and <separator> is "#".
|
|
74
80
|
*
|
|
75
|
-
* The separator-starts-line case (in which this function returns
|
|
76
|
-
* distinguished from the non-well-formed-line case (in
|
|
77
|
-
* returns
|
|
81
|
+
* The separator-starts-line case (in which this function returns true and
|
|
82
|
+
* sets out to 0) is distinguished from the non-well-formed-line case (in
|
|
83
|
+
* which this function returns false) because some callers of this function
|
|
84
|
+
* need such a distinction.
|
|
78
85
|
*/
|
|
79
|
-
static
|
|
86
|
+
static bool find_separator(size_t *out, const char *line, const char *separators)
|
|
80
87
|
{
|
|
81
88
|
int whitespace_found = 0;
|
|
82
89
|
const char *c;
|
|
83
90
|
for (c = line; *c; c++) {
|
|
84
|
-
if (strchr(separators, *c))
|
|
85
|
-
|
|
91
|
+
if (strchr(separators, *c)) {
|
|
92
|
+
*out = c - line;
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
|
|
86
96
|
if (!whitespace_found && (isalnum(*c) || *c == '-'))
|
|
87
97
|
continue;
|
|
88
98
|
if (c != line && (*c == ' ' || *c == '\t')) {
|
|
@@ -91,7 +101,7 @@ static int find_separator(const char *line, const char *separators)
|
|
|
91
101
|
}
|
|
92
102
|
break;
|
|
93
103
|
}
|
|
94
|
-
return
|
|
104
|
+
return false;
|
|
95
105
|
}
|
|
96
106
|
|
|
97
107
|
/*
|
|
@@ -104,10 +114,9 @@ static int find_separator(const char *line, const char *separators)
|
|
|
104
114
|
* Returns the number of bytes from the tail to ignore, to be fed as
|
|
105
115
|
* the second parameter to append_signoff().
|
|
106
116
|
*/
|
|
107
|
-
static
|
|
117
|
+
static size_t ignore_non_trailer(const char *buf, size_t len)
|
|
108
118
|
{
|
|
109
|
-
|
|
110
|
-
size_t bol = 0;
|
|
119
|
+
size_t boc = 0, bol = 0;
|
|
111
120
|
int in_old_conflicts_block = 0;
|
|
112
121
|
size_t cutoff = len;
|
|
113
122
|
|
|
@@ -144,7 +153,7 @@ static int ignore_non_trailer(const char *buf, size_t len)
|
|
|
144
153
|
* Return the position of the start of the patch or the length of str if there
|
|
145
154
|
* is no patch in the message.
|
|
146
155
|
*/
|
|
147
|
-
static
|
|
156
|
+
static size_t find_patch_start(const char *str)
|
|
148
157
|
{
|
|
149
158
|
const char *s;
|
|
150
159
|
|
|
@@ -160,10 +169,11 @@ static int find_patch_start(const char *str)
|
|
|
160
169
|
* Return the position of the first trailer line or len if there are no
|
|
161
170
|
* trailers.
|
|
162
171
|
*/
|
|
163
|
-
static
|
|
172
|
+
static size_t find_trailer_start(const char *buf, size_t len)
|
|
164
173
|
{
|
|
165
174
|
const char *s;
|
|
166
|
-
|
|
175
|
+
size_t end_of_title, l;
|
|
176
|
+
int only_spaces = 1;
|
|
167
177
|
int recognized_prefix = 0, trailer_lines = 0, non_trailer_lines = 0;
|
|
168
178
|
/*
|
|
169
179
|
* Number of possible continuation lines encountered. This will be
|
|
@@ -189,12 +199,11 @@ static int find_trailer_start(const char *buf, size_t len)
|
|
|
189
199
|
* trailers, or (ii) contains at least one Git-generated trailer and
|
|
190
200
|
* consists of at least 25% trailers.
|
|
191
201
|
*/
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
l = last_line(buf, l)) {
|
|
202
|
+
l = len;
|
|
203
|
+
while (last_line(&l, buf, l) && l >= end_of_title) {
|
|
195
204
|
const char *bol = buf + l;
|
|
196
205
|
const char *const *p;
|
|
197
|
-
|
|
206
|
+
size_t separator_pos = 0;
|
|
198
207
|
|
|
199
208
|
if (bol[0] == COMMENT_LINE_CHAR) {
|
|
200
209
|
non_trailer_lines += possible_continuation_lines;
|
|
@@ -223,7 +232,7 @@ static int find_trailer_start(const char *buf, size_t len)
|
|
|
223
232
|
}
|
|
224
233
|
}
|
|
225
234
|
|
|
226
|
-
separator_pos
|
|
235
|
+
find_separator(&separator_pos, bol, TRAILER_SEPARATORS);
|
|
227
236
|
if (separator_pos >= 1 && !isspace(bol[0])) {
|
|
228
237
|
trailer_lines++;
|
|
229
238
|
possible_continuation_lines = 0;
|
|
@@ -244,7 +253,7 @@ continue_outer_loop:
|
|
|
244
253
|
}
|
|
245
254
|
|
|
246
255
|
/* Return the position of the end of the trailers. */
|
|
247
|
-
static
|
|
256
|
+
static size_t find_trailer_end(const char *buf, size_t len)
|
|
248
257
|
{
|
|
249
258
|
return len - ignore_non_trailer(buf, len);
|
|
250
259
|
}
|
|
@@ -258,6 +267,9 @@ static char *extract_trailer_block(const char *message, size_t* len)
|
|
|
258
267
|
size_t trailer_len = trailer_end - trailer_start;
|
|
259
268
|
|
|
260
269
|
char *buffer = git__malloc(trailer_len + 1);
|
|
270
|
+
if (buffer == NULL)
|
|
271
|
+
return NULL;
|
|
272
|
+
|
|
261
273
|
memcpy(buffer, message + trailer_start, trailer_len);
|
|
262
274
|
buffer[trailer_len] = 0;
|
|
263
275
|
|
|
@@ -293,6 +305,8 @@ int git_message_trailers(git_message_trailer_array *trailer_arr, const char *mes
|
|
|
293
305
|
|
|
294
306
|
size_t trailer_len;
|
|
295
307
|
char *trailer = extract_trailer_block(message, &trailer_len);
|
|
308
|
+
if (trailer == NULL)
|
|
309
|
+
return -1;
|
|
296
310
|
|
|
297
311
|
for (ptr = trailer;;) {
|
|
298
312
|
switch (state) {
|