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 <zlib.h>
|
|
11
11
|
#include "git2/object.h"
|
|
12
12
|
#include "git2/sys/odb_backend.h"
|
|
13
|
-
#include "
|
|
13
|
+
#include "futils.h"
|
|
14
14
|
#include "hash.h"
|
|
15
15
|
#include "odb.h"
|
|
16
16
|
#include "delta.h"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
#define MAX_HEADER_LEN 64
|
|
26
26
|
|
|
27
27
|
typedef struct { /* object header data */
|
|
28
|
-
|
|
28
|
+
git_object_t type; /* object type */
|
|
29
29
|
size_t size; /* object size */
|
|
30
30
|
} obj_hdr;
|
|
31
31
|
|
|
@@ -81,8 +81,8 @@ static int object_file_name(
|
|
|
81
81
|
size_t alloclen;
|
|
82
82
|
|
|
83
83
|
/* expand length for object root + 40 hex sha1 chars + 2 * '/' + '\0' */
|
|
84
|
-
|
|
85
|
-
|
|
84
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, be->objects_dirlen, GIT_OID_HEXSZ);
|
|
85
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 3);
|
|
86
86
|
if (git_buf_grow(name, alloclen) < 0)
|
|
87
87
|
return -1;
|
|
88
88
|
|
|
@@ -138,7 +138,7 @@ static int parse_header_packlike(
|
|
|
138
138
|
return 0;
|
|
139
139
|
|
|
140
140
|
on_error:
|
|
141
|
-
|
|
141
|
+
git_error_set(GIT_ERROR_OBJECT, "failed to parse loose object: invalid header");
|
|
142
142
|
return -1;
|
|
143
143
|
}
|
|
144
144
|
|
|
@@ -179,11 +179,11 @@ static int parse_header(
|
|
|
179
179
|
goto on_error;
|
|
180
180
|
|
|
181
181
|
if ((uint64_t)size > SIZE_MAX) {
|
|
182
|
-
|
|
182
|
+
git_error_set(GIT_ERROR_OBJECT, "object is larger than available memory");
|
|
183
183
|
return -1;
|
|
184
184
|
}
|
|
185
185
|
|
|
186
|
-
out->size = size;
|
|
186
|
+
out->size = (size_t)size;
|
|
187
187
|
|
|
188
188
|
if (GIT_ADD_SIZET_OVERFLOW(out_len, i, 1))
|
|
189
189
|
goto on_error;
|
|
@@ -191,7 +191,7 @@ static int parse_header(
|
|
|
191
191
|
return 0;
|
|
192
192
|
|
|
193
193
|
on_error:
|
|
194
|
-
|
|
194
|
+
git_error_set(GIT_ERROR_OBJECT, "failed to parse loose object: invalid header");
|
|
195
195
|
return -1;
|
|
196
196
|
}
|
|
197
197
|
|
|
@@ -241,7 +241,7 @@ static int read_loose_packlike(git_rawobj *out, git_buf *obj)
|
|
|
241
241
|
goto done;
|
|
242
242
|
|
|
243
243
|
if (!git_object_typeisloose(hdr.type) || head_len > obj_len) {
|
|
244
|
-
|
|
244
|
+
git_error_set(GIT_ERROR_ODB, "failed to inflate loose object");
|
|
245
245
|
error = -1;
|
|
246
246
|
goto done;
|
|
247
247
|
}
|
|
@@ -294,7 +294,7 @@ static int read_loose_standard(git_rawobj *out, git_buf *obj)
|
|
|
294
294
|
goto done;
|
|
295
295
|
|
|
296
296
|
if (!git_object_typeisloose(hdr.type)) {
|
|
297
|
-
|
|
297
|
+
git_error_set(GIT_ERROR_ODB, "failed to inflate disk object");
|
|
298
298
|
error = -1;
|
|
299
299
|
goto done;
|
|
300
300
|
}
|
|
@@ -320,7 +320,7 @@ static int read_loose_standard(git_rawobj *out, git_buf *obj)
|
|
|
320
320
|
goto done;
|
|
321
321
|
|
|
322
322
|
if (!git_zstream_done(&zstream)) {
|
|
323
|
-
|
|
323
|
+
git_error_set(GIT_ERROR_ZLIB, "failed to finish zlib inflation: stream aborted prematurely");
|
|
324
324
|
error = -1;
|
|
325
325
|
goto done;
|
|
326
326
|
}
|
|
@@ -351,7 +351,7 @@ static int read_loose(git_rawobj *out, git_buf *loc)
|
|
|
351
351
|
|
|
352
352
|
out->data = NULL;
|
|
353
353
|
out->len = 0;
|
|
354
|
-
out->type =
|
|
354
|
+
out->type = GIT_OBJECT_INVALID;
|
|
355
355
|
|
|
356
356
|
if ((error = git_futils_readbuffer(&obj, loc->ptr)) < 0)
|
|
357
357
|
goto done;
|
|
@@ -408,7 +408,8 @@ done:
|
|
|
408
408
|
static int read_header_loose(git_rawobj *out, git_buf *loc)
|
|
409
409
|
{
|
|
410
410
|
unsigned char obj[1024];
|
|
411
|
-
|
|
411
|
+
ssize_t obj_len;
|
|
412
|
+
int fd, error;
|
|
412
413
|
|
|
413
414
|
assert(out && loc);
|
|
414
415
|
|
|
@@ -417,17 +418,21 @@ static int read_header_loose(git_rawobj *out, git_buf *loc)
|
|
|
417
418
|
|
|
418
419
|
out->data = NULL;
|
|
419
420
|
|
|
420
|
-
if ((error = fd = git_futils_open_ro(loc->ptr)) < 0
|
|
421
|
-
(error = obj_len = p_read(fd, obj, sizeof(obj))) < 0)
|
|
421
|
+
if ((error = fd = git_futils_open_ro(loc->ptr)) < 0)
|
|
422
422
|
goto done;
|
|
423
423
|
|
|
424
|
+
if ((obj_len = p_read(fd, obj, sizeof(obj))) < 0) {
|
|
425
|
+
error = (int)obj_len;
|
|
426
|
+
goto done;
|
|
427
|
+
}
|
|
428
|
+
|
|
424
429
|
if (!is_zlib_compressed_data(obj, (size_t)obj_len))
|
|
425
430
|
error = read_header_loose_packlike(out, obj, (size_t)obj_len);
|
|
426
431
|
else
|
|
427
432
|
error = read_header_loose_standard(out, obj, (size_t)obj_len);
|
|
428
433
|
|
|
429
434
|
if (!error && !git_object_typeisloose(out->type)) {
|
|
430
|
-
|
|
435
|
+
git_error_set(GIT_ERROR_ZLIB, "failed to read loose object header");
|
|
431
436
|
error = -1;
|
|
432
437
|
goto done;
|
|
433
438
|
}
|
|
@@ -496,8 +501,8 @@ static int locate_object_short_oid(
|
|
|
496
501
|
int error;
|
|
497
502
|
|
|
498
503
|
/* prealloc memory for OBJ_DIR/xx/xx..38x..xx */
|
|
499
|
-
|
|
500
|
-
|
|
504
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, dir_len, GIT_OID_HEXSZ);
|
|
505
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 3);
|
|
501
506
|
if (git_buf_grow(object_location, alloc_len) < 0)
|
|
502
507
|
return -1;
|
|
503
508
|
|
|
@@ -543,8 +548,8 @@ static int locate_object_short_oid(
|
|
|
543
548
|
return error;
|
|
544
549
|
|
|
545
550
|
/* Update the location according to the oid obtained */
|
|
546
|
-
|
|
547
|
-
|
|
551
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, dir_len, GIT_OID_HEXSZ);
|
|
552
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, alloc_len, 2);
|
|
548
553
|
|
|
549
554
|
git_buf_truncate(object_location, dir_len);
|
|
550
555
|
if (git_buf_grow(object_location, alloc_len) < 0)
|
|
@@ -574,7 +579,7 @@ static int locate_object_short_oid(
|
|
|
574
579
|
*
|
|
575
580
|
***********************************************************/
|
|
576
581
|
|
|
577
|
-
static int loose_backend__read_header(size_t *len_p,
|
|
582
|
+
static int loose_backend__read_header(size_t *len_p, git_object_t *type_p, git_odb_backend *backend, const git_oid *oid)
|
|
578
583
|
{
|
|
579
584
|
git_buf object_path = GIT_BUF_INIT;
|
|
580
585
|
git_rawobj raw;
|
|
@@ -583,7 +588,7 @@ static int loose_backend__read_header(size_t *len_p, git_otype *type_p, git_odb_
|
|
|
583
588
|
assert(backend && oid);
|
|
584
589
|
|
|
585
590
|
raw.len = 0;
|
|
586
|
-
raw.type =
|
|
591
|
+
raw.type = GIT_OBJECT_INVALID;
|
|
587
592
|
|
|
588
593
|
if (locate_object(&object_path, (loose_backend *)backend, oid) < 0) {
|
|
589
594
|
error = git_odb__error_notfound("no matching loose object",
|
|
@@ -598,7 +603,7 @@ static int loose_backend__read_header(size_t *len_p, git_otype *type_p, git_odb_
|
|
|
598
603
|
return error;
|
|
599
604
|
}
|
|
600
605
|
|
|
601
|
-
static int loose_backend__read(void **buffer_p, size_t *len_p,
|
|
606
|
+
static int loose_backend__read(void **buffer_p, size_t *len_p, git_object_t *type_p, git_odb_backend *backend, const git_oid *oid)
|
|
602
607
|
{
|
|
603
608
|
git_buf object_path = GIT_BUF_INIT;
|
|
604
609
|
git_rawobj raw;
|
|
@@ -624,7 +629,7 @@ static int loose_backend__read_prefix(
|
|
|
624
629
|
git_oid *out_oid,
|
|
625
630
|
void **buffer_p,
|
|
626
631
|
size_t *len_p,
|
|
627
|
-
|
|
632
|
+
git_object_t *type_p,
|
|
628
633
|
git_odb_backend *backend,
|
|
629
634
|
const git_oid *short_oid,
|
|
630
635
|
size_t len)
|
|
@@ -731,7 +736,7 @@ static int foreach_object_dir_cb(void *_state, git_buf *path)
|
|
|
731
736
|
if (filename_to_oid(&oid, path->ptr + state->dir_len) < 0)
|
|
732
737
|
return 0;
|
|
733
738
|
|
|
734
|
-
return
|
|
739
|
+
return git_error_set_after_callback_function(
|
|
735
740
|
state->cb(&oid, state->data), "git_odb_foreach");
|
|
736
741
|
}
|
|
737
742
|
|
|
@@ -819,7 +824,7 @@ static int filebuf_flags(loose_backend *backend)
|
|
|
819
824
|
return flags;
|
|
820
825
|
}
|
|
821
826
|
|
|
822
|
-
static int loose_backend__writestream(git_odb_stream **stream_out, git_odb_backend *_backend,
|
|
827
|
+
static int loose_backend__writestream(git_odb_stream **stream_out, git_odb_backend *_backend, git_object_size_t length, git_object_t type)
|
|
823
828
|
{
|
|
824
829
|
loose_backend *backend;
|
|
825
830
|
loose_writestream *stream = NULL;
|
|
@@ -828,7 +833,7 @@ static int loose_backend__writestream(git_odb_stream **stream_out, git_odb_backe
|
|
|
828
833
|
size_t hdrlen;
|
|
829
834
|
int error;
|
|
830
835
|
|
|
831
|
-
assert(_backend
|
|
836
|
+
assert(_backend);
|
|
832
837
|
|
|
833
838
|
backend = (loose_backend *)_backend;
|
|
834
839
|
*stream_out = NULL;
|
|
@@ -838,7 +843,7 @@ static int loose_backend__writestream(git_odb_stream **stream_out, git_odb_backe
|
|
|
838
843
|
return error;
|
|
839
844
|
|
|
840
845
|
stream = git__calloc(1, sizeof(loose_writestream));
|
|
841
|
-
|
|
846
|
+
GIT_ERROR_CHECK_ALLOC(stream);
|
|
842
847
|
|
|
843
848
|
stream->stream.backend = _backend;
|
|
844
849
|
stream->stream.read = NULL; /* read only */
|
|
@@ -871,6 +876,8 @@ static int loose_backend__readstream_read(
|
|
|
871
876
|
size_t start_remain = stream->start_len - stream->start_read;
|
|
872
877
|
int total = 0, error;
|
|
873
878
|
|
|
879
|
+
buffer_len = min(buffer_len, INT_MAX);
|
|
880
|
+
|
|
874
881
|
/*
|
|
875
882
|
* if we read more than just the header in the initial read, play
|
|
876
883
|
* that back for the caller.
|
|
@@ -882,20 +889,20 @@ static int loose_backend__readstream_read(
|
|
|
882
889
|
buffer += chunk;
|
|
883
890
|
stream->start_read += chunk;
|
|
884
891
|
|
|
885
|
-
total += chunk;
|
|
892
|
+
total += (int)chunk;
|
|
886
893
|
buffer_len -= chunk;
|
|
887
894
|
}
|
|
888
895
|
|
|
889
896
|
if (buffer_len) {
|
|
890
|
-
size_t chunk =
|
|
897
|
+
size_t chunk = buffer_len;
|
|
891
898
|
|
|
892
899
|
if ((error = git_zstream_get_output(buffer, &chunk, &stream->zstream)) < 0)
|
|
893
900
|
return error;
|
|
894
901
|
|
|
895
|
-
total += chunk;
|
|
902
|
+
total += (int)chunk;
|
|
896
903
|
}
|
|
897
904
|
|
|
898
|
-
return total;
|
|
905
|
+
return (int)total;
|
|
899
906
|
}
|
|
900
907
|
|
|
901
908
|
static void loose_backend__readstream_free(git_odb_stream *_stream)
|
|
@@ -926,7 +933,7 @@ static int loose_backend__readstream_packlike(
|
|
|
926
933
|
return error;
|
|
927
934
|
|
|
928
935
|
if (!git_object_typeisloose(hdr->type)) {
|
|
929
|
-
|
|
936
|
+
git_error_set(GIT_ERROR_ODB, "failed to inflate loose object");
|
|
930
937
|
return -1;
|
|
931
938
|
}
|
|
932
939
|
|
|
@@ -958,7 +965,7 @@ static int loose_backend__readstream_standard(
|
|
|
958
965
|
return error;
|
|
959
966
|
|
|
960
967
|
if (!git_object_typeisloose(hdr->type)) {
|
|
961
|
-
|
|
968
|
+
git_error_set(GIT_ERROR_ODB, "failed to inflate disk object");
|
|
962
969
|
return -1;
|
|
963
970
|
}
|
|
964
971
|
|
|
@@ -973,7 +980,7 @@ static int loose_backend__readstream_standard(
|
|
|
973
980
|
static int loose_backend__readstream(
|
|
974
981
|
git_odb_stream **stream_out,
|
|
975
982
|
size_t *len_out,
|
|
976
|
-
|
|
983
|
+
git_object_t *type_out,
|
|
977
984
|
git_odb_backend *_backend,
|
|
978
985
|
const git_oid *oid)
|
|
979
986
|
{
|
|
@@ -989,7 +996,7 @@ static int loose_backend__readstream(
|
|
|
989
996
|
backend = (loose_backend *)_backend;
|
|
990
997
|
*stream_out = NULL;
|
|
991
998
|
*len_out = 0;
|
|
992
|
-
*type_out =
|
|
999
|
+
*type_out = GIT_OBJECT_INVALID;
|
|
993
1000
|
|
|
994
1001
|
if (locate_object(&object_path, backend, oid) < 0) {
|
|
995
1002
|
error = git_odb__error_notfound("no matching loose object",
|
|
@@ -998,10 +1005,10 @@ static int loose_backend__readstream(
|
|
|
998
1005
|
}
|
|
999
1006
|
|
|
1000
1007
|
stream = git__calloc(1, sizeof(loose_readstream));
|
|
1001
|
-
|
|
1008
|
+
GIT_ERROR_CHECK_ALLOC(stream);
|
|
1002
1009
|
|
|
1003
1010
|
hash_ctx = git__malloc(sizeof(git_hash_ctx));
|
|
1004
|
-
|
|
1011
|
+
GIT_ERROR_CHECK_ALLOC(hash_ctx);
|
|
1005
1012
|
|
|
1006
1013
|
if ((error = git_hash_ctx_init(hash_ctx)) < 0 ||
|
|
1007
1014
|
(error = git_futils_mmap_ro_file(&stream->map, object_path.ptr)) < 0 ||
|
|
@@ -1028,18 +1035,22 @@ static int loose_backend__readstream(
|
|
|
1028
1035
|
|
|
1029
1036
|
done:
|
|
1030
1037
|
if (error < 0) {
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1038
|
+
if (stream) {
|
|
1039
|
+
git_futils_mmap_free(&stream->map);
|
|
1040
|
+
git_zstream_free(&stream->zstream);
|
|
1041
|
+
git__free(stream);
|
|
1042
|
+
}
|
|
1043
|
+
if (hash_ctx) {
|
|
1044
|
+
git_hash_ctx_cleanup(hash_ctx);
|
|
1045
|
+
git__free(hash_ctx);
|
|
1046
|
+
}
|
|
1036
1047
|
}
|
|
1037
1048
|
|
|
1038
1049
|
git_buf_dispose(&object_path);
|
|
1039
1050
|
return error;
|
|
1040
1051
|
}
|
|
1041
1052
|
|
|
1042
|
-
static int loose_backend__write(git_odb_backend *_backend, const git_oid *oid, const void *data, size_t len,
|
|
1053
|
+
static int loose_backend__write(git_odb_backend *_backend, const git_oid *oid, const void *data, size_t len, git_object_t type)
|
|
1043
1054
|
{
|
|
1044
1055
|
int error = 0;
|
|
1045
1056
|
git_buf final_path = GIT_BUF_INIT;
|
|
@@ -1119,10 +1130,10 @@ int git_odb_backend_loose(
|
|
|
1119
1130
|
|
|
1120
1131
|
objects_dirlen = strlen(objects_dir);
|
|
1121
1132
|
|
|
1122
|
-
|
|
1123
|
-
|
|
1133
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, sizeof(loose_backend), objects_dirlen);
|
|
1134
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloclen, alloclen, 2);
|
|
1124
1135
|
backend = git__calloc(1, alloclen);
|
|
1125
|
-
|
|
1136
|
+
GIT_ERROR_CHECK_ALLOC(backend);
|
|
1126
1137
|
|
|
1127
1138
|
backend->parent.version = GIT_ODB_BACKEND_VERSION;
|
|
1128
1139
|
backend->objects_dirlen = objects_dirlen;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
#include "git2/object.h"
|
|
11
11
|
#include "git2/sys/odb_backend.h"
|
|
12
12
|
#include "git2/sys/mempack.h"
|
|
13
|
-
#include "
|
|
13
|
+
#include "futils.h"
|
|
14
14
|
#include "hash.h"
|
|
15
15
|
#include "odb.h"
|
|
16
16
|
#include "array.h"
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
struct memobject {
|
|
24
24
|
git_oid oid;
|
|
25
25
|
size_t len;
|
|
26
|
-
|
|
26
|
+
git_object_t type;
|
|
27
27
|
char data[GIT_FLEX_ARRAY];
|
|
28
28
|
};
|
|
29
29
|
|
|
@@ -33,36 +33,30 @@ struct memory_packer_db {
|
|
|
33
33
|
git_array_t(struct memobject *) commits;
|
|
34
34
|
};
|
|
35
35
|
|
|
36
|
-
static int impl__write(git_odb_backend *_backend, const git_oid *oid, const void *data, size_t len,
|
|
36
|
+
static int impl__write(git_odb_backend *_backend, const git_oid *oid, const void *data, size_t len, git_object_t type)
|
|
37
37
|
{
|
|
38
38
|
struct memory_packer_db *db = (struct memory_packer_db *)_backend;
|
|
39
|
-
struct memobject *obj = NULL;
|
|
40
|
-
khiter_t pos;
|
|
39
|
+
struct memobject *obj = NULL;
|
|
41
40
|
size_t alloc_len;
|
|
42
|
-
int rval;
|
|
43
|
-
|
|
44
|
-
pos = git_oidmap_put(db->objects, oid, &rval);
|
|
45
|
-
if (rval < 0)
|
|
46
|
-
return -1;
|
|
47
41
|
|
|
48
|
-
if (
|
|
42
|
+
if (git_oidmap_exists(db->objects, oid))
|
|
49
43
|
return 0;
|
|
50
44
|
|
|
51
|
-
|
|
45
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&alloc_len, sizeof(struct memobject), len);
|
|
52
46
|
obj = git__malloc(alloc_len);
|
|
53
|
-
|
|
47
|
+
GIT_ERROR_CHECK_ALLOC(obj);
|
|
54
48
|
|
|
55
49
|
memcpy(obj->data, data, len);
|
|
56
50
|
git_oid_cpy(&obj->oid, oid);
|
|
57
51
|
obj->len = len;
|
|
58
52
|
obj->type = type;
|
|
59
53
|
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
if (git_oidmap_set(db->objects, &obj->oid, obj) < 0)
|
|
55
|
+
return -1;
|
|
62
56
|
|
|
63
|
-
if (type ==
|
|
57
|
+
if (type == GIT_OBJECT_COMMIT) {
|
|
64
58
|
struct memobject **store = git_array_alloc(db->commits);
|
|
65
|
-
|
|
59
|
+
GIT_ERROR_CHECK_ALLOC(store);
|
|
66
60
|
*store = obj;
|
|
67
61
|
}
|
|
68
62
|
|
|
@@ -76,39 +70,31 @@ static int impl__exists(git_odb_backend *backend, const git_oid *oid)
|
|
|
76
70
|
return git_oidmap_exists(db->objects, oid);
|
|
77
71
|
}
|
|
78
72
|
|
|
79
|
-
static int impl__read(void **buffer_p, size_t *len_p,
|
|
73
|
+
static int impl__read(void **buffer_p, size_t *len_p, git_object_t *type_p, git_odb_backend *backend, const git_oid *oid)
|
|
80
74
|
{
|
|
81
75
|
struct memory_packer_db *db = (struct memory_packer_db *)backend;
|
|
82
|
-
struct memobject *obj
|
|
83
|
-
khiter_t pos;
|
|
76
|
+
struct memobject *obj;
|
|
84
77
|
|
|
85
|
-
|
|
86
|
-
if (!git_oidmap_valid_index(db->objects, pos))
|
|
78
|
+
if ((obj = git_oidmap_get(db->objects, oid)) == NULL)
|
|
87
79
|
return GIT_ENOTFOUND;
|
|
88
80
|
|
|
89
|
-
obj = git_oidmap_value_at(db->objects, pos);
|
|
90
|
-
|
|
91
81
|
*len_p = obj->len;
|
|
92
82
|
*type_p = obj->type;
|
|
93
83
|
*buffer_p = git__malloc(obj->len);
|
|
94
|
-
|
|
84
|
+
GIT_ERROR_CHECK_ALLOC(*buffer_p);
|
|
95
85
|
|
|
96
86
|
memcpy(*buffer_p, obj->data, obj->len);
|
|
97
87
|
return 0;
|
|
98
88
|
}
|
|
99
89
|
|
|
100
|
-
static int impl__read_header(size_t *len_p,
|
|
90
|
+
static int impl__read_header(size_t *len_p, git_object_t *type_p, git_odb_backend *backend, const git_oid *oid)
|
|
101
91
|
{
|
|
102
92
|
struct memory_packer_db *db = (struct memory_packer_db *)backend;
|
|
103
|
-
struct memobject *obj
|
|
104
|
-
khiter_t pos;
|
|
93
|
+
struct memobject *obj;
|
|
105
94
|
|
|
106
|
-
|
|
107
|
-
if (!git_oidmap_valid_index(db->objects, pos))
|
|
95
|
+
if ((obj = git_oidmap_get(db->objects, oid)) == NULL)
|
|
108
96
|
return GIT_ENOTFOUND;
|
|
109
97
|
|
|
110
|
-
obj = git_oidmap_value_at(db->objects, pos);
|
|
111
|
-
|
|
112
98
|
*len_p = obj->len;
|
|
113
99
|
*type_p = obj->type;
|
|
114
100
|
return 0;
|
|
@@ -169,9 +155,10 @@ int git_mempack_new(git_odb_backend **out)
|
|
|
169
155
|
assert(out);
|
|
170
156
|
|
|
171
157
|
db = git__calloc(1, sizeof(struct memory_packer_db));
|
|
172
|
-
|
|
158
|
+
GIT_ERROR_CHECK_ALLOC(db);
|
|
173
159
|
|
|
174
|
-
db->objects
|
|
160
|
+
if (git_oidmap_new(&db->objects) < 0)
|
|
161
|
+
return -1;
|
|
175
162
|
|
|
176
163
|
db->parent.version = GIT_ODB_BACKEND_VERSION;
|
|
177
164
|
db->parent.read = &impl__read;
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
#include "git2/repository.h"
|
|
12
12
|
#include "git2/indexer.h"
|
|
13
13
|
#include "git2/sys/odb_backend.h"
|
|
14
|
-
#include "
|
|
14
|
+
#include "futils.h"
|
|
15
15
|
#include "hash.h"
|
|
16
16
|
#include "odb.h"
|
|
17
17
|
#include "delta.h"
|
|
@@ -210,7 +210,7 @@ static int packfile_load__cb(void *data, git_buf *path)
|
|
|
210
210
|
for (i = 0; i < backend->packs.length; ++i) {
|
|
211
211
|
struct git_pack_file *p = git_vector_get(&backend->packs, i);
|
|
212
212
|
|
|
213
|
-
if (
|
|
213
|
+
if (strncmp(p->pack_name, path_str, cmp_len) == 0)
|
|
214
214
|
return 0;
|
|
215
215
|
}
|
|
216
216
|
|
|
@@ -218,7 +218,7 @@ static int packfile_load__cb(void *data, git_buf *path)
|
|
|
218
218
|
|
|
219
219
|
/* ignore missing .pack file as git does */
|
|
220
220
|
if (error == GIT_ENOTFOUND) {
|
|
221
|
-
|
|
221
|
+
git_error_clear();
|
|
222
222
|
return 0;
|
|
223
223
|
}
|
|
224
224
|
|
|
@@ -353,7 +353,7 @@ static int pack_backend__refresh(git_odb_backend *backend_)
|
|
|
353
353
|
}
|
|
354
354
|
|
|
355
355
|
static int pack_backend__read_header(
|
|
356
|
-
size_t *len_p,
|
|
356
|
+
size_t *len_p, git_object_t *type_p,
|
|
357
357
|
struct git_odb_backend *backend, const git_oid *oid)
|
|
358
358
|
{
|
|
359
359
|
struct git_pack_entry e;
|
|
@@ -390,7 +390,7 @@ static int pack_backend__freshen(
|
|
|
390
390
|
}
|
|
391
391
|
|
|
392
392
|
static int pack_backend__read(
|
|
393
|
-
void **buffer_p, size_t *len_p,
|
|
393
|
+
void **buffer_p, size_t *len_p, git_object_t *type_p,
|
|
394
394
|
git_odb_backend *backend, const git_oid *oid)
|
|
395
395
|
{
|
|
396
396
|
struct git_pack_entry e;
|
|
@@ -412,7 +412,7 @@ static int pack_backend__read_prefix(
|
|
|
412
412
|
git_oid *out_oid,
|
|
413
413
|
void **buffer_p,
|
|
414
414
|
size_t *len_p,
|
|
415
|
-
|
|
415
|
+
git_object_t *type_p,
|
|
416
416
|
git_odb_backend *backend,
|
|
417
417
|
const git_oid *short_oid,
|
|
418
418
|
size_t len)
|
|
@@ -478,14 +478,14 @@ static int pack_backend__foreach(git_odb_backend *_backend, git_odb_foreach_cb c
|
|
|
478
478
|
return error;
|
|
479
479
|
|
|
480
480
|
git_vector_foreach(&backend->packs, i, p) {
|
|
481
|
-
if ((error = git_pack_foreach_entry(p, cb, data))
|
|
481
|
+
if ((error = git_pack_foreach_entry(p, cb, data)) != 0)
|
|
482
482
|
return error;
|
|
483
483
|
}
|
|
484
484
|
|
|
485
485
|
return 0;
|
|
486
486
|
}
|
|
487
487
|
|
|
488
|
-
static int pack_backend__writepack_append(struct git_odb_writepack *_writepack, const void *data, size_t size,
|
|
488
|
+
static int pack_backend__writepack_append(struct git_odb_writepack *_writepack, const void *data, size_t size, git_indexer_progress *stats)
|
|
489
489
|
{
|
|
490
490
|
struct pack_writepack *writepack = (struct pack_writepack *)_writepack;
|
|
491
491
|
|
|
@@ -494,7 +494,7 @@ static int pack_backend__writepack_append(struct git_odb_writepack *_writepack,
|
|
|
494
494
|
return git_indexer_append(writepack->indexer, data, size, stats);
|
|
495
495
|
}
|
|
496
496
|
|
|
497
|
-
static int pack_backend__writepack_commit(struct git_odb_writepack *_writepack,
|
|
497
|
+
static int pack_backend__writepack_commit(struct git_odb_writepack *_writepack, git_indexer_progress *stats)
|
|
498
498
|
{
|
|
499
499
|
struct pack_writepack *writepack = (struct pack_writepack *)_writepack;
|
|
500
500
|
|
|
@@ -516,9 +516,10 @@ static void pack_backend__writepack_free(struct git_odb_writepack *_writepack)
|
|
|
516
516
|
static int pack_backend__writepack(struct git_odb_writepack **out,
|
|
517
517
|
git_odb_backend *_backend,
|
|
518
518
|
git_odb *odb,
|
|
519
|
-
|
|
519
|
+
git_indexer_progress_cb progress_cb,
|
|
520
520
|
void *progress_payload)
|
|
521
521
|
{
|
|
522
|
+
git_indexer_options opts = GIT_INDEXER_OPTIONS_INIT;
|
|
522
523
|
struct pack_backend *backend;
|
|
523
524
|
struct pack_writepack *writepack;
|
|
524
525
|
|
|
@@ -526,13 +527,16 @@ static int pack_backend__writepack(struct git_odb_writepack **out,
|
|
|
526
527
|
|
|
527
528
|
*out = NULL;
|
|
528
529
|
|
|
530
|
+
opts.progress_cb = progress_cb;
|
|
531
|
+
opts.progress_cb_payload = progress_payload;
|
|
532
|
+
|
|
529
533
|
backend = (struct pack_backend *)_backend;
|
|
530
534
|
|
|
531
535
|
writepack = git__calloc(1, sizeof(struct pack_writepack));
|
|
532
|
-
|
|
536
|
+
GIT_ERROR_CHECK_ALLOC(writepack);
|
|
533
537
|
|
|
534
538
|
if (git_indexer_new(&writepack->indexer,
|
|
535
|
-
backend->pack_folder, 0, odb,
|
|
539
|
+
backend->pack_folder, 0, odb, &opts) < 0) {
|
|
536
540
|
git__free(writepack);
|
|
537
541
|
return -1;
|
|
538
542
|
}
|
|
@@ -569,7 +573,7 @@ static void pack_backend__free(git_odb_backend *_backend)
|
|
|
569
573
|
static int pack_backend__alloc(struct pack_backend **out, size_t initial_size)
|
|
570
574
|
{
|
|
571
575
|
struct pack_backend *backend = git__calloc(1, sizeof(struct pack_backend));
|
|
572
|
-
|
|
576
|
+
GIT_ERROR_CHECK_ALLOC(backend);
|
|
573
577
|
|
|
574
578
|
if (git_vector_init(&backend->packs, initial_size, packfile_sort__cb) < 0) {
|
|
575
579
|
git__free(backend);
|