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/fetch.c
CHANGED
|
@@ -113,7 +113,7 @@ int git_fetch_negotiate(git_remote *remote, const git_fetch_options *opts)
|
|
|
113
113
|
remote->need_pack = 0;
|
|
114
114
|
|
|
115
115
|
if (filter_wants(remote, opts) < 0) {
|
|
116
|
-
|
|
116
|
+
git_error_set(GIT_ERROR_NET, "failed to filter the reference list for wants");
|
|
117
117
|
return -1;
|
|
118
118
|
}
|
|
119
119
|
|
|
@@ -134,7 +134,7 @@ int git_fetch_negotiate(git_remote *remote, const git_fetch_options *opts)
|
|
|
134
134
|
int git_fetch_download_pack(git_remote *remote, const git_remote_callbacks *callbacks)
|
|
135
135
|
{
|
|
136
136
|
git_transport *t = remote->transport;
|
|
137
|
-
|
|
137
|
+
git_indexer_progress_cb progress = NULL;
|
|
138
138
|
void *payload = NULL;
|
|
139
139
|
|
|
140
140
|
if (!remote->need_pack)
|
|
@@ -148,9 +148,14 @@ int git_fetch_download_pack(git_remote *remote, const git_remote_callbacks *call
|
|
|
148
148
|
return t->download_pack(t, remote->repo, &remote->stats, progress, payload);
|
|
149
149
|
}
|
|
150
150
|
|
|
151
|
-
int
|
|
151
|
+
int git_fetch_options_init(git_fetch_options *opts, unsigned int version)
|
|
152
152
|
{
|
|
153
153
|
GIT_INIT_STRUCTURE_FROM_TEMPLATE(
|
|
154
154
|
opts, version, git_fetch_options, GIT_FETCH_OPTIONS_INIT);
|
|
155
155
|
return 0;
|
|
156
156
|
}
|
|
157
|
+
|
|
158
|
+
int git_fetch_init_options(git_fetch_options *opts, unsigned int version)
|
|
159
|
+
{
|
|
160
|
+
return git_fetch_options_init(opts, version);
|
|
161
|
+
}
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#include "git2/oid.h"
|
|
12
12
|
|
|
13
13
|
#include "buffer.h"
|
|
14
|
-
#include "
|
|
14
|
+
#include "futils.h"
|
|
15
15
|
#include "filebuf.h"
|
|
16
16
|
#include "refs.h"
|
|
17
17
|
#include "repository.h"
|
|
@@ -50,7 +50,7 @@ int git_fetchhead_ref_create(
|
|
|
50
50
|
*out = NULL;
|
|
51
51
|
|
|
52
52
|
fetchhead_ref = git__malloc(sizeof(git_fetchhead_ref));
|
|
53
|
-
|
|
53
|
+
GIT_ERROR_CHECK_ALLOC(fetchhead_ref);
|
|
54
54
|
|
|
55
55
|
memset(fetchhead_ref, 0x0, sizeof(git_fetchhead_ref));
|
|
56
56
|
|
|
@@ -148,7 +148,7 @@ static int fetchhead_ref_parse(
|
|
|
148
148
|
*remote_url = NULL;
|
|
149
149
|
|
|
150
150
|
if (!*line) {
|
|
151
|
-
|
|
151
|
+
git_error_set(GIT_ERROR_FETCHHEAD,
|
|
152
152
|
"empty line in FETCH_HEAD line %"PRIuZ, line_num);
|
|
153
153
|
return -1;
|
|
154
154
|
}
|
|
@@ -162,16 +162,16 @@ static int fetchhead_ref_parse(
|
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
if (strlen(oid_str) != GIT_OID_HEXSZ) {
|
|
165
|
-
|
|
165
|
+
git_error_set(GIT_ERROR_FETCHHEAD,
|
|
166
166
|
"invalid object ID in FETCH_HEAD line %"PRIuZ, line_num);
|
|
167
167
|
return -1;
|
|
168
168
|
}
|
|
169
169
|
|
|
170
170
|
if (git_oid_fromstr(oid, oid_str) < 0) {
|
|
171
|
-
const git_error *oid_err =
|
|
171
|
+
const git_error *oid_err = git_error_last();
|
|
172
172
|
const char *err_msg = oid_err ? oid_err->message : "invalid object ID";
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
git_error_set(GIT_ERROR_FETCHHEAD, "%s in FETCH_HEAD line %"PRIuZ,
|
|
175
175
|
err_msg, line_num);
|
|
176
176
|
return -1;
|
|
177
177
|
}
|
|
@@ -179,7 +179,7 @@ static int fetchhead_ref_parse(
|
|
|
179
179
|
/* Parse new data from newer git clients */
|
|
180
180
|
if (*line) {
|
|
181
181
|
if ((is_merge_str = git__strsep(&line, "\t")) == NULL) {
|
|
182
|
-
|
|
182
|
+
git_error_set(GIT_ERROR_FETCHHEAD,
|
|
183
183
|
"invalid description data in FETCH_HEAD line %"PRIuZ, line_num);
|
|
184
184
|
return -1;
|
|
185
185
|
}
|
|
@@ -189,13 +189,13 @@ static int fetchhead_ref_parse(
|
|
|
189
189
|
else if (strcmp(is_merge_str, "not-for-merge") == 0)
|
|
190
190
|
*is_merge = 0;
|
|
191
191
|
else {
|
|
192
|
-
|
|
192
|
+
git_error_set(GIT_ERROR_FETCHHEAD,
|
|
193
193
|
"invalid for-merge entry in FETCH_HEAD line %"PRIuZ, line_num);
|
|
194
194
|
return -1;
|
|
195
195
|
}
|
|
196
196
|
|
|
197
197
|
if ((desc = line) == NULL) {
|
|
198
|
-
|
|
198
|
+
git_error_set(GIT_ERROR_FETCHHEAD,
|
|
199
199
|
"invalid description in FETCH_HEAD line %"PRIuZ, line_num);
|
|
200
200
|
return -1;
|
|
201
201
|
}
|
|
@@ -212,7 +212,7 @@ static int fetchhead_ref_parse(
|
|
|
212
212
|
if (name) {
|
|
213
213
|
if ((desc = strstr(name, "' ")) == NULL ||
|
|
214
214
|
git__prefixcmp(desc, "' of ") != 0) {
|
|
215
|
-
|
|
215
|
+
git_error_set(GIT_ERROR_FETCHHEAD,
|
|
216
216
|
"invalid description in FETCH_HEAD line %"PRIuZ, line_num);
|
|
217
217
|
return -1;
|
|
218
218
|
}
|
|
@@ -271,13 +271,13 @@ int git_repository_fetchhead_foreach(git_repository *repo,
|
|
|
271
271
|
|
|
272
272
|
error = cb(ref_name, remote_url, &oid, is_merge, payload);
|
|
273
273
|
if (error) {
|
|
274
|
-
|
|
274
|
+
git_error_set_after_callback(error);
|
|
275
275
|
goto done;
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
278
|
|
|
279
279
|
if (*buffer) {
|
|
280
|
-
|
|
280
|
+
git_error_set(GIT_ERROR_FETCHHEAD, "no EOL at line %"PRIuZ, line_num+1);
|
|
281
281
|
error = -1;
|
|
282
282
|
goto done;
|
|
283
283
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
#include "filebuf.h"
|
|
9
9
|
|
|
10
|
-
#include "
|
|
10
|
+
#include "futils.h"
|
|
11
11
|
|
|
12
12
|
static const size_t WRITE_BUFFER_SIZE = (4096 * 2);
|
|
13
13
|
|
|
@@ -24,15 +24,15 @@ static int verify_last_error(git_filebuf *file)
|
|
|
24
24
|
{
|
|
25
25
|
switch (file->last_error) {
|
|
26
26
|
case BUFERR_WRITE:
|
|
27
|
-
|
|
27
|
+
git_error_set(GIT_ERROR_OS, "failed to write out file");
|
|
28
28
|
return -1;
|
|
29
29
|
|
|
30
30
|
case BUFERR_MEM:
|
|
31
|
-
|
|
31
|
+
git_error_set_oom();
|
|
32
32
|
return -1;
|
|
33
33
|
|
|
34
34
|
case BUFERR_ZLIB:
|
|
35
|
-
|
|
35
|
+
git_error_set(GIT_ERROR_ZLIB,
|
|
36
36
|
"Buffer error when writing out ZLib data");
|
|
37
37
|
return -1;
|
|
38
38
|
|
|
@@ -44,18 +44,14 @@ static int verify_last_error(git_filebuf *file)
|
|
|
44
44
|
static int lock_file(git_filebuf *file, int flags, mode_t mode)
|
|
45
45
|
{
|
|
46
46
|
if (git_path_exists(file->path_lock) == true) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
giterr_set(GITERR_OS,
|
|
52
|
-
"failed to lock file '%s' for writing", file->path_lock);
|
|
53
|
-
return GIT_ELOCKED;
|
|
54
|
-
}
|
|
47
|
+
git_error_clear(); /* actual OS error code just confuses */
|
|
48
|
+
git_error_set(GIT_ERROR_OS,
|
|
49
|
+
"failed to lock file '%s' for writing", file->path_lock);
|
|
50
|
+
return GIT_ELOCKED;
|
|
55
51
|
}
|
|
56
52
|
|
|
57
53
|
/* create path to the file buffer is required */
|
|
58
|
-
if (flags &
|
|
54
|
+
if (flags & GIT_FILEBUF_CREATE_LEADING_DIRS) {
|
|
59
55
|
/* XXX: Should dirmode here be configurable? Or is 0777 always fine? */
|
|
60
56
|
file->fd = git_futils_creat_locked_withpath(file->path_lock, 0777, mode);
|
|
61
57
|
} else {
|
|
@@ -75,7 +71,7 @@ static int lock_file(git_filebuf *file, int flags, mode_t mode)
|
|
|
75
71
|
|
|
76
72
|
source = p_open(file->path_original, O_RDONLY);
|
|
77
73
|
if (source < 0) {
|
|
78
|
-
|
|
74
|
+
git_error_set(GIT_ERROR_OS,
|
|
79
75
|
"failed to open file '%s' for reading",
|
|
80
76
|
file->path_original);
|
|
81
77
|
return -1;
|
|
@@ -91,10 +87,10 @@ static int lock_file(git_filebuf *file, int flags, mode_t mode)
|
|
|
91
87
|
p_close(source);
|
|
92
88
|
|
|
93
89
|
if (read_bytes < 0) {
|
|
94
|
-
|
|
90
|
+
git_error_set(GIT_ERROR_OS, "failed to read file '%s'", file->path_original);
|
|
95
91
|
return -1;
|
|
96
92
|
} else if (error < 0) {
|
|
97
|
-
|
|
93
|
+
git_error_set(GIT_ERROR_OS, "failed to write file '%s'", file->path_lock);
|
|
98
94
|
return -1;
|
|
99
95
|
}
|
|
100
96
|
}
|
|
@@ -218,7 +214,7 @@ static int resolve_symlink(git_buf *out, const char *path)
|
|
|
218
214
|
}
|
|
219
215
|
|
|
220
216
|
if (error < 0) {
|
|
221
|
-
|
|
217
|
+
git_error_set(GIT_ERROR_OS, "failed to stat '%s'", curpath.ptr);
|
|
222
218
|
error = -1;
|
|
223
219
|
goto cleanup;
|
|
224
220
|
}
|
|
@@ -230,13 +226,13 @@ static int resolve_symlink(git_buf *out, const char *path)
|
|
|
230
226
|
|
|
231
227
|
ret = p_readlink(curpath.ptr, target.ptr, GIT_PATH_MAX);
|
|
232
228
|
if (ret < 0) {
|
|
233
|
-
|
|
229
|
+
git_error_set(GIT_ERROR_OS, "failed to read symlink '%s'", curpath.ptr);
|
|
234
230
|
error = -1;
|
|
235
231
|
goto cleanup;
|
|
236
232
|
}
|
|
237
233
|
|
|
238
234
|
if (ret == GIT_PATH_MAX) {
|
|
239
|
-
|
|
235
|
+
git_error_set(GIT_ERROR_INVALID, "symlink target too long");
|
|
240
236
|
error = -1;
|
|
241
237
|
goto cleanup;
|
|
242
238
|
}
|
|
@@ -263,7 +259,7 @@ static int resolve_symlink(git_buf *out, const char *path)
|
|
|
263
259
|
}
|
|
264
260
|
}
|
|
265
261
|
|
|
266
|
-
|
|
262
|
+
git_error_set(GIT_ERROR_INVALID, "maximum symlink depth reached");
|
|
267
263
|
error = -1;
|
|
268
264
|
|
|
269
265
|
cleanup:
|
|
@@ -303,7 +299,7 @@ int git_filebuf_open_withsize(git_filebuf *file, const char *path, int flags, mo
|
|
|
303
299
|
/* Allocate the main cache buffer */
|
|
304
300
|
if (!file->do_not_buffer) {
|
|
305
301
|
file->buffer = git__malloc(file->buf_size);
|
|
306
|
-
|
|
302
|
+
GIT_ERROR_CHECK_ALLOC(file->buffer);
|
|
307
303
|
}
|
|
308
304
|
|
|
309
305
|
/* If we are hashing on-write, allocate a new hash context */
|
|
@@ -320,13 +316,13 @@ int git_filebuf_open_withsize(git_filebuf *file, const char *path, int flags, mo
|
|
|
320
316
|
if (compression != 0) {
|
|
321
317
|
/* Initialize the ZLib stream */
|
|
322
318
|
if (deflateInit(&file->zs, compression) != Z_OK) {
|
|
323
|
-
|
|
319
|
+
git_error_set(GIT_ERROR_ZLIB, "failed to initialize zlib");
|
|
324
320
|
goto cleanup;
|
|
325
321
|
}
|
|
326
322
|
|
|
327
323
|
/* Allocate the Zlib cache buffer */
|
|
328
324
|
file->z_buf = git__malloc(file->buf_size);
|
|
329
|
-
|
|
325
|
+
GIT_ERROR_CHECK_ALLOC(file->z_buf);
|
|
330
326
|
|
|
331
327
|
/* Never flush */
|
|
332
328
|
file->flush_mode = Z_NO_FLUSH;
|
|
@@ -352,7 +348,7 @@ int git_filebuf_open_withsize(git_filebuf *file, const char *path, int flags, mo
|
|
|
352
348
|
/* No original path */
|
|
353
349
|
file->path_original = NULL;
|
|
354
350
|
file->path_lock = git_buf_detach(&tmp_path);
|
|
355
|
-
|
|
351
|
+
GIT_ERROR_CHECK_ALLOC(file->path_lock);
|
|
356
352
|
} else {
|
|
357
353
|
git_buf resolved_path = GIT_BUF_INIT;
|
|
358
354
|
|
|
@@ -364,15 +360,15 @@ int git_filebuf_open_withsize(git_filebuf *file, const char *path, int flags, mo
|
|
|
364
360
|
file->path_original = git_buf_detach(&resolved_path);
|
|
365
361
|
|
|
366
362
|
/* create the locking path by appending ".lock" to the original */
|
|
367
|
-
|
|
363
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, path_len, GIT_FILELOCK_EXTLENGTH);
|
|
368
364
|
file->path_lock = git__malloc(alloc_len);
|
|
369
|
-
|
|
365
|
+
GIT_ERROR_CHECK_ALLOC(file->path_lock);
|
|
370
366
|
|
|
371
367
|
memcpy(file->path_lock, file->path_original, path_len);
|
|
372
368
|
memcpy(file->path_lock + path_len, GIT_FILELOCK_EXTENSION, GIT_FILELOCK_EXTLENGTH);
|
|
373
369
|
|
|
374
370
|
if (git_path_isdir(file->path_original)) {
|
|
375
|
-
|
|
371
|
+
git_error_set(GIT_ERROR_FILESYSTEM, "path '%s' is a directory", file->path_original);
|
|
376
372
|
error = GIT_EDIRECTORY;
|
|
377
373
|
goto cleanup;
|
|
378
374
|
}
|
|
@@ -411,7 +407,7 @@ int git_filebuf_commit_at(git_filebuf *file, const char *path)
|
|
|
411
407
|
{
|
|
412
408
|
git__free(file->path_original);
|
|
413
409
|
file->path_original = git__strdup(path);
|
|
414
|
-
|
|
410
|
+
GIT_ERROR_CHECK_ALLOC(file->path_original);
|
|
415
411
|
|
|
416
412
|
return git_filebuf_commit(file);
|
|
417
413
|
}
|
|
@@ -430,19 +426,19 @@ int git_filebuf_commit(git_filebuf *file)
|
|
|
430
426
|
file->fd_is_open = false;
|
|
431
427
|
|
|
432
428
|
if (file->do_fsync && p_fsync(file->fd) < 0) {
|
|
433
|
-
|
|
429
|
+
git_error_set(GIT_ERROR_OS, "failed to fsync '%s'", file->path_lock);
|
|
434
430
|
goto on_error;
|
|
435
431
|
}
|
|
436
432
|
|
|
437
433
|
if (p_close(file->fd) < 0) {
|
|
438
|
-
|
|
434
|
+
git_error_set(GIT_ERROR_OS, "failed to close file at '%s'", file->path_lock);
|
|
439
435
|
goto on_error;
|
|
440
436
|
}
|
|
441
437
|
|
|
442
438
|
file->fd = -1;
|
|
443
439
|
|
|
444
440
|
if (p_rename(file->path_lock, file->path_original) < 0) {
|
|
445
|
-
|
|
441
|
+
git_error_set(GIT_ERROR_OS, "failed to rename lockfile to '%s'", file->path_original);
|
|
446
442
|
goto on_error;
|
|
447
443
|
}
|
|
448
444
|
|
|
@@ -583,7 +579,7 @@ int git_filebuf_stats(time_t *mtime, size_t *size, git_filebuf *file)
|
|
|
583
579
|
res = p_stat(file->path_original, &st);
|
|
584
580
|
|
|
585
581
|
if (res < 0) {
|
|
586
|
-
|
|
582
|
+
git_error_set(GIT_ERROR_OS, "could not get stat info for '%s'",
|
|
587
583
|
file->path_original);
|
|
588
584
|
return res;
|
|
589
585
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
#include "common.h"
|
|
11
11
|
|
|
12
|
-
#include "
|
|
12
|
+
#include "futils.h"
|
|
13
13
|
#include "hash.h"
|
|
14
14
|
#include <zlib.h>
|
|
15
15
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
#define GIT_FILEBUF_HASH_CONTENTS (1 << 0)
|
|
21
21
|
#define GIT_FILEBUF_APPEND (1 << 2)
|
|
22
|
-
#define
|
|
22
|
+
#define GIT_FILEBUF_CREATE_LEADING_DIRS (1 << 3)
|
|
23
23
|
#define GIT_FILEBUF_TEMPORARY (1 << 4)
|
|
24
24
|
#define GIT_FILEBUF_DO_NOT_BUFFER (1 << 5)
|
|
25
25
|
#define GIT_FILEBUF_FSYNC (1 << 6)
|
data/vendor/libgit2/src/filter.c
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
#include "filter.h"
|
|
9
9
|
|
|
10
10
|
#include "common.h"
|
|
11
|
-
#include "
|
|
11
|
+
#include "futils.h"
|
|
12
12
|
#include "hash.h"
|
|
13
13
|
#include "repository.h"
|
|
14
14
|
#include "global.h"
|
|
@@ -157,15 +157,15 @@ static int filter_registry_insert(
|
|
|
157
157
|
if (filter_def_scan_attrs(&attrs, &nattr, &nmatch, filter->attributes) < 0)
|
|
158
158
|
return -1;
|
|
159
159
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
160
|
+
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&alloc_len, nattr, 2);
|
|
161
|
+
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&alloc_len, alloc_len, sizeof(char *));
|
|
162
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, sizeof(git_filter_def));
|
|
163
163
|
|
|
164
164
|
fdef = git__calloc(1, alloc_len);
|
|
165
|
-
|
|
165
|
+
GIT_ERROR_CHECK_ALLOC(fdef);
|
|
166
166
|
|
|
167
167
|
fdef->filter_name = git__strdup(name);
|
|
168
|
-
|
|
168
|
+
GIT_ERROR_CHECK_ALLOC(fdef->filter_name);
|
|
169
169
|
|
|
170
170
|
fdef->filter = filter;
|
|
171
171
|
fdef->priority = priority;
|
|
@@ -269,13 +269,13 @@ int git_filter_register(
|
|
|
269
269
|
assert(name && filter);
|
|
270
270
|
|
|
271
271
|
if (git_rwlock_wrlock(&filter_registry.lock) < 0) {
|
|
272
|
-
|
|
272
|
+
git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
|
|
273
273
|
return -1;
|
|
274
274
|
}
|
|
275
275
|
|
|
276
276
|
if (!filter_registry_find(NULL, name)) {
|
|
277
|
-
|
|
278
|
-
|
|
277
|
+
git_error_set(
|
|
278
|
+
GIT_ERROR_FILTER, "attempt to reregister existing filter '%s'", name);
|
|
279
279
|
error = GIT_EEXISTS;
|
|
280
280
|
goto done;
|
|
281
281
|
}
|
|
@@ -297,17 +297,17 @@ int git_filter_unregister(const char *name)
|
|
|
297
297
|
|
|
298
298
|
/* cannot unregister default filters */
|
|
299
299
|
if (!strcmp(GIT_FILTER_CRLF, name) || !strcmp(GIT_FILTER_IDENT, name)) {
|
|
300
|
-
|
|
300
|
+
git_error_set(GIT_ERROR_FILTER, "cannot unregister filter '%s'", name);
|
|
301
301
|
return -1;
|
|
302
302
|
}
|
|
303
303
|
|
|
304
304
|
if (git_rwlock_wrlock(&filter_registry.lock) < 0) {
|
|
305
|
-
|
|
305
|
+
git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
|
|
306
306
|
return -1;
|
|
307
307
|
}
|
|
308
308
|
|
|
309
309
|
if ((fdef = filter_registry_lookup(&pos, name)) == NULL) {
|
|
310
|
-
|
|
310
|
+
git_error_set(GIT_ERROR_FILTER, "cannot find filter '%s' to unregister", name);
|
|
311
311
|
error = GIT_ENOTFOUND;
|
|
312
312
|
goto done;
|
|
313
313
|
}
|
|
@@ -348,7 +348,7 @@ git_filter *git_filter_lookup(const char *name)
|
|
|
348
348
|
git_filter *filter = NULL;
|
|
349
349
|
|
|
350
350
|
if (git_rwlock_rdlock(&filter_registry.lock) < 0) {
|
|
351
|
-
|
|
351
|
+
git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
|
|
352
352
|
return NULL;
|
|
353
353
|
}
|
|
354
354
|
|
|
@@ -385,7 +385,7 @@ uint16_t git_filter_source_filemode(const git_filter_source *src)
|
|
|
385
385
|
|
|
386
386
|
const git_oid *git_filter_source_id(const git_filter_source *src)
|
|
387
387
|
{
|
|
388
|
-
return
|
|
388
|
+
return git_oid_is_zero(&src->oid) ? NULL : &src->oid;
|
|
389
389
|
}
|
|
390
390
|
|
|
391
391
|
git_filter_mode_t git_filter_source_mode(const git_filter_source *src)
|
|
@@ -404,11 +404,11 @@ static int filter_list_new(
|
|
|
404
404
|
git_filter_list *fl = NULL;
|
|
405
405
|
size_t pathlen = src->path ? strlen(src->path) : 0, alloclen;
|
|
406
406
|
|
|
407
|
-
|
|
408
|
-
|
|
407
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, sizeof(git_filter_list), pathlen);
|
|
408
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 1);
|
|
409
409
|
|
|
410
410
|
fl = git__calloc(1, alloclen);
|
|
411
|
-
|
|
411
|
+
GIT_ERROR_CHECK_ALLOC(fl);
|
|
412
412
|
|
|
413
413
|
if (src->path)
|
|
414
414
|
memcpy(fl->path, src->path, pathlen);
|
|
@@ -428,24 +428,32 @@ static int filter_list_check_attributes(
|
|
|
428
428
|
git_filter_def *fdef,
|
|
429
429
|
const git_filter_source *src)
|
|
430
430
|
{
|
|
431
|
-
int error;
|
|
432
|
-
size_t i;
|
|
433
431
|
const char **strs = git__calloc(fdef->nattrs, sizeof(const char *));
|
|
434
|
-
|
|
432
|
+
uint32_t flags = 0;
|
|
433
|
+
size_t i;
|
|
434
|
+
int error;
|
|
435
|
+
|
|
436
|
+
GIT_ERROR_CHECK_ALLOC(strs);
|
|
437
|
+
|
|
438
|
+
if ((src->flags & GIT_FILTER_NO_SYSTEM_ATTRIBUTES) != 0)
|
|
439
|
+
flags |= GIT_ATTR_CHECK_NO_SYSTEM;
|
|
440
|
+
|
|
441
|
+
if ((src->flags & GIT_FILTER_ATTRIBUTES_FROM_HEAD) != 0)
|
|
442
|
+
flags |= GIT_ATTR_CHECK_INCLUDE_HEAD;
|
|
435
443
|
|
|
436
444
|
error = git_attr_get_many_with_session(
|
|
437
|
-
strs, repo, attr_session,
|
|
445
|
+
strs, repo, attr_session, flags, src->path, fdef->nattrs, fdef->attrs);
|
|
438
446
|
|
|
439
447
|
/* if no values were found but no matches are needed, it's okay! */
|
|
440
448
|
if (error == GIT_ENOTFOUND && !fdef->nmatches) {
|
|
441
|
-
|
|
449
|
+
git_error_clear();
|
|
442
450
|
git__free((void *)strs);
|
|
443
451
|
return 0;
|
|
444
452
|
}
|
|
445
453
|
|
|
446
454
|
for (i = 0; !error && i < fdef->nattrs; ++i) {
|
|
447
455
|
const char *want = fdef->attrs[fdef->nattrs + i];
|
|
448
|
-
|
|
456
|
+
git_attr_value_t want_type, found_type;
|
|
449
457
|
|
|
450
458
|
if (!want)
|
|
451
459
|
continue;
|
|
@@ -455,7 +463,7 @@ static int filter_list_check_attributes(
|
|
|
455
463
|
|
|
456
464
|
if (want_type != found_type)
|
|
457
465
|
error = GIT_ENOTFOUND;
|
|
458
|
-
else if (want_type ==
|
|
466
|
+
else if (want_type == GIT_ATTR_VALUE_STRING &&
|
|
459
467
|
strcmp(want, strs[i]) &&
|
|
460
468
|
strcmp(want, "*"))
|
|
461
469
|
error = GIT_ENOTFOUND;
|
|
@@ -499,7 +507,7 @@ int git_filter_list__load_ext(
|
|
|
499
507
|
git_filter_def *fdef;
|
|
500
508
|
|
|
501
509
|
if (git_rwlock_rdlock(&filter_registry.lock) < 0) {
|
|
502
|
-
|
|
510
|
+
git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
|
|
503
511
|
return -1;
|
|
504
512
|
}
|
|
505
513
|
|
|
@@ -551,7 +559,7 @@ int git_filter_list__load_ext(
|
|
|
551
559
|
}
|
|
552
560
|
|
|
553
561
|
fe = git_array_alloc(fl->filters);
|
|
554
|
-
|
|
562
|
+
GIT_ERROR_CHECK_ALLOC(fe);
|
|
555
563
|
|
|
556
564
|
fe->filter = fdef->filter;
|
|
557
565
|
fe->filter_name = fdef->filter_name;
|
|
@@ -634,7 +642,7 @@ int git_filter_list_push(
|
|
|
634
642
|
assert(fl && filter);
|
|
635
643
|
|
|
636
644
|
if (git_rwlock_rdlock(&filter_registry.lock) < 0) {
|
|
637
|
-
|
|
645
|
+
git_error_set(GIT_ERROR_OS, "failed to lock filter registry");
|
|
638
646
|
return -1;
|
|
639
647
|
}
|
|
640
648
|
|
|
@@ -646,7 +654,7 @@ int git_filter_list_push(
|
|
|
646
654
|
git_rwlock_rdunlock(&filter_registry.lock);
|
|
647
655
|
|
|
648
656
|
if (fdef == NULL) {
|
|
649
|
-
|
|
657
|
+
git_error_set(GIT_ERROR_FILTER, "cannot use an unregistered filter");
|
|
650
658
|
return -1;
|
|
651
659
|
}
|
|
652
660
|
|
|
@@ -654,7 +662,7 @@ int git_filter_list_push(
|
|
|
654
662
|
return error;
|
|
655
663
|
|
|
656
664
|
fe = git_array_alloc(fl->filters);
|
|
657
|
-
|
|
665
|
+
GIT_ERROR_CHECK_ALLOC(fe);
|
|
658
666
|
fe->filter = filter;
|
|
659
667
|
fe->payload = payload;
|
|
660
668
|
|
|
@@ -756,10 +764,10 @@ int git_filter_list_apply_to_file(
|
|
|
756
764
|
|
|
757
765
|
static int buf_from_blob(git_buf *out, git_blob *blob)
|
|
758
766
|
{
|
|
759
|
-
|
|
767
|
+
git_object_size_t rawsize = git_blob_rawsize(blob);
|
|
760
768
|
|
|
761
769
|
if (!git__is_sizet(rawsize)) {
|
|
762
|
-
|
|
770
|
+
git_error_set(GIT_ERROR_OS, "blob is too large to filter");
|
|
763
771
|
return -1;
|
|
764
772
|
}
|
|
765
773
|
|
|
@@ -809,6 +817,7 @@ static int proxy_stream_close(git_writestream *s)
|
|
|
809
817
|
{
|
|
810
818
|
struct proxy_stream *proxy_stream = (struct proxy_stream *)s;
|
|
811
819
|
git_buf *writebuf;
|
|
820
|
+
git_error_state error_state = {0};
|
|
812
821
|
int error;
|
|
813
822
|
|
|
814
823
|
assert(proxy_stream);
|
|
@@ -826,6 +835,11 @@ static int proxy_stream_close(git_writestream *s)
|
|
|
826
835
|
git_buf_sanitize(proxy_stream->output);
|
|
827
836
|
writebuf = proxy_stream->output;
|
|
828
837
|
} else {
|
|
838
|
+
/* close stream before erroring out taking care
|
|
839
|
+
* to preserve the original error */
|
|
840
|
+
git_error_state_capture(&error_state, error);
|
|
841
|
+
proxy_stream->target->close(proxy_stream->target);
|
|
842
|
+
git_error_state_restore(&error_state);
|
|
829
843
|
return error;
|
|
830
844
|
}
|
|
831
845
|
|
|
@@ -855,7 +869,7 @@ static int proxy_stream_init(
|
|
|
855
869
|
git_writestream *target)
|
|
856
870
|
{
|
|
857
871
|
struct proxy_stream *proxy_stream = git__calloc(1, sizeof(struct proxy_stream));
|
|
858
|
-
|
|
872
|
+
GIT_ERROR_CHECK_ALLOC(proxy_stream);
|
|
859
873
|
|
|
860
874
|
proxy_stream->parent.write = proxy_stream_write;
|
|
861
875
|
proxy_stream->parent.close = proxy_stream_close;
|
|
@@ -968,7 +982,7 @@ int git_filter_list_stream_file(
|
|
|
968
982
|
}
|
|
969
983
|
|
|
970
984
|
if (readlen < 0)
|
|
971
|
-
error =
|
|
985
|
+
error = -1;
|
|
972
986
|
|
|
973
987
|
done:
|
|
974
988
|
if (initialized)
|
data/vendor/libgit2/src/filter.h
CHANGED
|
@@ -15,16 +15,6 @@
|
|
|
15
15
|
/* Amount of file to examine for NUL byte when checking binary-ness */
|
|
16
16
|
#define GIT_FILTER_BYTES_TO_CHECK_NUL 8000
|
|
17
17
|
|
|
18
|
-
/* Possible CRLF values */
|
|
19
|
-
typedef enum {
|
|
20
|
-
GIT_CRLF_GUESS = -1,
|
|
21
|
-
GIT_CRLF_BINARY = 0,
|
|
22
|
-
GIT_CRLF_TEXT,
|
|
23
|
-
GIT_CRLF_INPUT,
|
|
24
|
-
GIT_CRLF_CRLF,
|
|
25
|
-
GIT_CRLF_AUTO,
|
|
26
|
-
} git_crlf_t;
|
|
27
|
-
|
|
28
18
|
typedef struct {
|
|
29
19
|
git_attr_session *attr_session;
|
|
30
20
|
git_buf *temp_buf;
|