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
|
@@ -38,7 +38,13 @@ struct tree_walk_context {
|
|
|
38
38
|
|
|
39
39
|
struct pack_write_context {
|
|
40
40
|
git_indexer *indexer;
|
|
41
|
-
|
|
41
|
+
git_indexer_progress *stats;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
struct walk_object {
|
|
45
|
+
git_oid id;
|
|
46
|
+
unsigned int uninteresting:1,
|
|
47
|
+
seen:1;
|
|
42
48
|
};
|
|
43
49
|
|
|
44
50
|
#ifdef GIT_THREADS
|
|
@@ -99,7 +105,7 @@ static int packbuilder_config(git_packbuilder *pb)
|
|
|
99
105
|
ret = git_config_get_int64(&val, config, KEY); \
|
|
100
106
|
if (!ret) { \
|
|
101
107
|
if (!git__is_sizet(val)) { \
|
|
102
|
-
|
|
108
|
+
git_error_set(GIT_ERROR_CONFIG, \
|
|
103
109
|
"configuration value '%s' is too large", KEY); \
|
|
104
110
|
ret = -1; \
|
|
105
111
|
goto out; \
|
|
@@ -133,17 +139,15 @@ int git_packbuilder_new(git_packbuilder **out, git_repository *repo)
|
|
|
133
139
|
*out = NULL;
|
|
134
140
|
|
|
135
141
|
pb = git__calloc(1, sizeof(*pb));
|
|
136
|
-
|
|
142
|
+
GIT_ERROR_CHECK_ALLOC(pb);
|
|
137
143
|
|
|
138
|
-
pb->object_ix
|
|
139
|
-
if (!pb->object_ix)
|
|
144
|
+
if (git_oidmap_new(&pb->object_ix) < 0)
|
|
140
145
|
goto on_error;
|
|
141
146
|
|
|
142
|
-
pb->walk_objects
|
|
143
|
-
if (!pb->walk_objects)
|
|
147
|
+
if (git_oidmap_new(&pb->walk_objects) < 0)
|
|
144
148
|
goto on_error;
|
|
145
149
|
|
|
146
|
-
git_pool_init(&pb->object_pool, sizeof(
|
|
150
|
+
git_pool_init(&pb->object_pool, sizeof(struct walk_object));
|
|
147
151
|
|
|
148
152
|
pb->repo = repo;
|
|
149
153
|
pb->nr_threads = 1; /* do not spawn any thread by default */
|
|
@@ -160,7 +164,7 @@ int git_packbuilder_new(git_packbuilder **out, git_repository *repo)
|
|
|
160
164
|
git_mutex_init(&pb->progress_mutex) ||
|
|
161
165
|
git_cond_init(&pb->progress_cond))
|
|
162
166
|
{
|
|
163
|
-
|
|
167
|
+
git_error_set(GIT_ERROR_OS, "failed to initialize packbuilder mutex");
|
|
164
168
|
goto on_error;
|
|
165
169
|
}
|
|
166
170
|
|
|
@@ -188,25 +192,25 @@ unsigned int git_packbuilder_set_threads(git_packbuilder *pb, unsigned int n)
|
|
|
188
192
|
return pb->nr_threads;
|
|
189
193
|
}
|
|
190
194
|
|
|
191
|
-
static
|
|
195
|
+
static int rehash(git_packbuilder *pb)
|
|
192
196
|
{
|
|
193
197
|
git_pobject *po;
|
|
194
|
-
khiter_t pos;
|
|
195
198
|
size_t i;
|
|
196
|
-
int ret;
|
|
197
199
|
|
|
198
200
|
git_oidmap_clear(pb->object_ix);
|
|
201
|
+
|
|
199
202
|
for (i = 0, po = pb->object_list; i < pb->nr_objects; i++, po++) {
|
|
200
|
-
|
|
201
|
-
|
|
203
|
+
if (git_oidmap_set(pb->object_ix, &po->id, po) < 0)
|
|
204
|
+
return -1;
|
|
202
205
|
}
|
|
206
|
+
|
|
207
|
+
return 0;
|
|
203
208
|
}
|
|
204
209
|
|
|
205
210
|
int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
206
211
|
const char *name)
|
|
207
212
|
{
|
|
208
213
|
git_pobject *po;
|
|
209
|
-
khiter_t pos;
|
|
210
214
|
size_t newsize;
|
|
211
215
|
int ret;
|
|
212
216
|
|
|
@@ -218,11 +222,11 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
|
218
222
|
return 0;
|
|
219
223
|
|
|
220
224
|
if (pb->nr_objects >= pb->nr_alloc) {
|
|
221
|
-
|
|
222
|
-
|
|
225
|
+
GIT_ERROR_CHECK_ALLOC_ADD(&newsize, pb->nr_alloc, 1024);
|
|
226
|
+
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&newsize, newsize / 2, 3);
|
|
223
227
|
|
|
224
228
|
if (!git__is_uint32(newsize)) {
|
|
225
|
-
|
|
229
|
+
git_error_set(GIT_ERROR_NOMEMORY, "packfile too large to fit in memory.");
|
|
226
230
|
return -1;
|
|
227
231
|
}
|
|
228
232
|
|
|
@@ -230,8 +234,10 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
|
230
234
|
|
|
231
235
|
pb->object_list = git__reallocarray(pb->object_list,
|
|
232
236
|
pb->nr_alloc, sizeof(*po));
|
|
233
|
-
|
|
234
|
-
|
|
237
|
+
GIT_ERROR_CHECK_ALLOC(pb->object_list);
|
|
238
|
+
|
|
239
|
+
if (rehash(pb) < 0)
|
|
240
|
+
return -1;
|
|
235
241
|
}
|
|
236
242
|
|
|
237
243
|
po = pb->object_list + pb->nr_objects;
|
|
@@ -244,13 +250,10 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
|
244
250
|
git_oid_cpy(&po->id, oid);
|
|
245
251
|
po->hash = name_hash(name);
|
|
246
252
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
return ret;
|
|
253
|
+
if (git_oidmap_set(pb->object_ix, &po->id, po) < 0) {
|
|
254
|
+
git_error_set_oom();
|
|
255
|
+
return -1;
|
|
251
256
|
}
|
|
252
|
-
assert(ret != 0);
|
|
253
|
-
git_oidmap_set_value_at(pb->object_ix, pos, po);
|
|
254
257
|
|
|
255
258
|
pb->done = false;
|
|
256
259
|
|
|
@@ -266,7 +269,7 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
|
266
269
|
pb->nr_objects, 0, pb->progress_cb_payload);
|
|
267
270
|
|
|
268
271
|
if (ret)
|
|
269
|
-
return
|
|
272
|
+
return git_error_set_after_callback(ret);
|
|
270
273
|
}
|
|
271
274
|
}
|
|
272
275
|
|
|
@@ -295,7 +298,7 @@ static int get_delta(void **out, git_odb *odb, git_pobject *po)
|
|
|
295
298
|
goto on_error;
|
|
296
299
|
|
|
297
300
|
if (error == GIT_EBUFS || delta_size != po->delta_size) {
|
|
298
|
-
|
|
301
|
+
git_error_set(GIT_ERROR_INVALID, "delta size changed");
|
|
299
302
|
goto on_error;
|
|
300
303
|
}
|
|
301
304
|
|
|
@@ -318,7 +321,7 @@ static int write_object(
|
|
|
318
321
|
void *cb_data)
|
|
319
322
|
{
|
|
320
323
|
git_odb_object *obj = NULL;
|
|
321
|
-
|
|
324
|
+
git_object_t type;
|
|
322
325
|
unsigned char hdr[10], *zbuf = NULL;
|
|
323
326
|
void *data = NULL;
|
|
324
327
|
size_t hdr_len, zbuf_len = COMPRESS_BUFLEN, data_len;
|
|
@@ -336,7 +339,7 @@ static int write_object(
|
|
|
336
339
|
goto done;
|
|
337
340
|
|
|
338
341
|
data_len = po->delta_size;
|
|
339
|
-
type =
|
|
342
|
+
type = GIT_OBJECT_REF_DELTA;
|
|
340
343
|
} else {
|
|
341
344
|
if ((error = git_odb_read(&obj, pb->odb, &po->id)) < 0)
|
|
342
345
|
goto done;
|
|
@@ -353,7 +356,7 @@ static int write_object(
|
|
|
353
356
|
(error = git_hash_update(&pb->ctx, hdr, hdr_len)) < 0)
|
|
354
357
|
goto done;
|
|
355
358
|
|
|
356
|
-
if (type ==
|
|
359
|
+
if (type == GIT_OBJECT_REF_DELTA) {
|
|
357
360
|
if ((error = write_cb(po->delta->id.id, GIT_OID_RAWSZ, cb_data)) < 0 ||
|
|
358
361
|
(error = git_hash_update(&pb->ctx, po->delta->id.id, GIT_OID_RAWSZ)) < 0)
|
|
359
362
|
goto done;
|
|
@@ -368,7 +371,7 @@ static int write_object(
|
|
|
368
371
|
goto done;
|
|
369
372
|
} else {
|
|
370
373
|
zbuf = git__malloc(zbuf_len);
|
|
371
|
-
|
|
374
|
+
GIT_ERROR_CHECK_ALLOC(zbuf);
|
|
372
375
|
|
|
373
376
|
git_zstream_reset(&pb->zstream);
|
|
374
377
|
git_zstream_set_input(&pb->zstream, data, data_len);
|
|
@@ -510,15 +513,12 @@ static int cb_tag_foreach(const char *name, git_oid *oid, void *data)
|
|
|
510
513
|
{
|
|
511
514
|
git_packbuilder *pb = data;
|
|
512
515
|
git_pobject *po;
|
|
513
|
-
khiter_t pos;
|
|
514
516
|
|
|
515
517
|
GIT_UNUSED(name);
|
|
516
518
|
|
|
517
|
-
|
|
518
|
-
if (!git_oidmap_valid_index(pb->object_ix, pos))
|
|
519
|
+
if ((po = git_oidmap_get(pb->object_ix, oid)) == NULL)
|
|
519
520
|
return 0;
|
|
520
521
|
|
|
521
|
-
po = git_oidmap_value_at(pb->object_ix, pos);
|
|
522
522
|
po->tagged = 1;
|
|
523
523
|
|
|
524
524
|
/* TODO: peel objects */
|
|
@@ -590,8 +590,8 @@ static git_pobject **compute_write_order(git_packbuilder *pb)
|
|
|
590
590
|
*/
|
|
591
591
|
for (i = last_untagged; i < pb->nr_objects; i++) {
|
|
592
592
|
git_pobject *po = pb->object_list + i;
|
|
593
|
-
if (po->type !=
|
|
594
|
-
po->type !=
|
|
593
|
+
if (po->type != GIT_OBJECT_COMMIT &&
|
|
594
|
+
po->type != GIT_OBJECT_TAG)
|
|
595
595
|
continue;
|
|
596
596
|
add_to_write_order(wo, &wo_end, po);
|
|
597
597
|
}
|
|
@@ -601,7 +601,7 @@ static git_pobject **compute_write_order(git_packbuilder *pb)
|
|
|
601
601
|
*/
|
|
602
602
|
for (i = last_untagged; i < pb->nr_objects; i++) {
|
|
603
603
|
git_pobject *po = pb->object_list + i;
|
|
604
|
-
if (po->type !=
|
|
604
|
+
if (po->type != GIT_OBJECT_TREE)
|
|
605
605
|
continue;
|
|
606
606
|
add_to_write_order(wo, &wo_end, po);
|
|
607
607
|
}
|
|
@@ -617,7 +617,7 @@ static git_pobject **compute_write_order(git_packbuilder *pb)
|
|
|
617
617
|
|
|
618
618
|
if (wo_end != pb->nr_objects) {
|
|
619
619
|
git__free(wo);
|
|
620
|
-
|
|
620
|
+
git_error_set(GIT_ERROR_INVALID, "invalid write order");
|
|
621
621
|
return NULL;
|
|
622
622
|
}
|
|
623
623
|
|
|
@@ -641,7 +641,7 @@ static int write_pack(git_packbuilder *pb,
|
|
|
641
641
|
return -1;
|
|
642
642
|
|
|
643
643
|
if (!git__is_uint32(pb->nr_objects)) {
|
|
644
|
-
|
|
644
|
+
git_error_set(GIT_ERROR_INVALID, "too many objects");
|
|
645
645
|
return -1;
|
|
646
646
|
}
|
|
647
647
|
|
|
@@ -798,13 +798,13 @@ static int try_delta(git_packbuilder *pb, struct unpacked *trg,
|
|
|
798
798
|
|
|
799
799
|
sz = git_odb_object_size(obj);
|
|
800
800
|
trg->data = git__malloc(sz);
|
|
801
|
-
|
|
801
|
+
GIT_ERROR_CHECK_ALLOC(trg->data);
|
|
802
802
|
memcpy(trg->data, git_odb_object_data(obj), sz);
|
|
803
803
|
|
|
804
804
|
git_odb_object_free(obj);
|
|
805
805
|
|
|
806
806
|
if (sz != trg_size) {
|
|
807
|
-
|
|
807
|
+
git_error_set(GIT_ERROR_INVALID,
|
|
808
808
|
"inconsistent target object length");
|
|
809
809
|
return -1;
|
|
810
810
|
}
|
|
@@ -820,13 +820,13 @@ static int try_delta(git_packbuilder *pb, struct unpacked *trg,
|
|
|
820
820
|
|
|
821
821
|
sz = obj_sz;
|
|
822
822
|
src->data = git__malloc(sz);
|
|
823
|
-
|
|
823
|
+
GIT_ERROR_CHECK_ALLOC(src->data);
|
|
824
824
|
memcpy(src->data, git_odb_object_data(obj), sz);
|
|
825
825
|
|
|
826
826
|
git_odb_object_free(obj);
|
|
827
827
|
|
|
828
828
|
if (sz != src_size) {
|
|
829
|
-
|
|
829
|
+
git_error_set(GIT_ERROR_INVALID,
|
|
830
830
|
"inconsistent source object length");
|
|
831
831
|
return -1;
|
|
832
832
|
}
|
|
@@ -872,7 +872,7 @@ static int try_delta(git_packbuilder *pb, struct unpacked *trg,
|
|
|
872
872
|
}
|
|
873
873
|
|
|
874
874
|
trg_object->delta_data = git__realloc(delta_buf, delta_size);
|
|
875
|
-
|
|
875
|
+
GIT_ERROR_CHECK_ALLOC(trg_object->delta_data);
|
|
876
876
|
} else {
|
|
877
877
|
/* create delta when writing the pack */
|
|
878
878
|
git_packbuilder__cache_unlock(pb);
|
|
@@ -938,7 +938,7 @@ static int report_delta_progress(
|
|
|
938
938
|
count, pb->nr_objects, pb->progress_cb_payload);
|
|
939
939
|
|
|
940
940
|
if (ret)
|
|
941
|
-
return
|
|
941
|
+
return git_error_set_after_callback(ret);
|
|
942
942
|
}
|
|
943
943
|
}
|
|
944
944
|
|
|
@@ -957,7 +957,7 @@ static int find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
|
957
957
|
int error = -1;
|
|
958
958
|
|
|
959
959
|
array = git__calloc(window, sizeof(struct unpacked));
|
|
960
|
-
|
|
960
|
+
GIT_ERROR_CHECK_ALLOC(array);
|
|
961
961
|
|
|
962
962
|
for (;;) {
|
|
963
963
|
struct unpacked *n = array + idx;
|
|
@@ -1043,7 +1043,7 @@ static int find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
|
1043
1043
|
|
|
1044
1044
|
git__free(po->delta_data);
|
|
1045
1045
|
po->delta_data = git__malloc(zbuf.size);
|
|
1046
|
-
|
|
1046
|
+
GIT_ERROR_CHECK_ALLOC(po->delta_data);
|
|
1047
1047
|
|
|
1048
1048
|
memcpy(po->delta_data, zbuf.ptr, zbuf.size);
|
|
1049
1049
|
po->z_delta_size = zbuf.size;
|
|
@@ -1136,7 +1136,7 @@ static void *threaded_find_deltas(void *arg)
|
|
|
1136
1136
|
git_packbuilder__progress_unlock(me->pb);
|
|
1137
1137
|
|
|
1138
1138
|
if (git_mutex_lock(&me->mutex)) {
|
|
1139
|
-
|
|
1139
|
+
git_error_set(GIT_ERROR_THREAD, "unable to lock packfile condition mutex");
|
|
1140
1140
|
return NULL;
|
|
1141
1141
|
}
|
|
1142
1142
|
|
|
@@ -1174,7 +1174,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
|
1174
1174
|
}
|
|
1175
1175
|
|
|
1176
1176
|
p = git__mallocarray(pb->nr_threads, sizeof(*p));
|
|
1177
|
-
|
|
1177
|
+
GIT_ERROR_CHECK_ALLOC(p);
|
|
1178
1178
|
|
|
1179
1179
|
/* Partition the work among the threads */
|
|
1180
1180
|
for (i = 0; i < pb->nr_threads; ++i) {
|
|
@@ -1215,7 +1215,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
|
1215
1215
|
ret = git_thread_create(&p[i].thread,
|
|
1216
1216
|
threaded_find_deltas, &p[i]);
|
|
1217
1217
|
if (ret) {
|
|
1218
|
-
|
|
1218
|
+
git_error_set(GIT_ERROR_THREAD, "unable to create thread");
|
|
1219
1219
|
return -1;
|
|
1220
1220
|
}
|
|
1221
1221
|
active_threads++;
|
|
@@ -1284,7 +1284,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
|
1284
1284
|
git_packbuilder__progress_unlock(pb);
|
|
1285
1285
|
|
|
1286
1286
|
if (git_mutex_lock(&target->mutex)) {
|
|
1287
|
-
|
|
1287
|
+
git_error_set(GIT_ERROR_THREAD, "unable to lock packfile condition mutex");
|
|
1288
1288
|
git__free(p);
|
|
1289
1289
|
return -1;
|
|
1290
1290
|
}
|
|
@@ -1325,7 +1325,7 @@ static int prepare_pack(git_packbuilder *pb)
|
|
|
1325
1325
|
pb->progress_cb(GIT_PACKBUILDER_DELTAFICATION, 0, pb->nr_objects, pb->progress_cb_payload);
|
|
1326
1326
|
|
|
1327
1327
|
delta_list = git__mallocarray(pb->nr_objects, sizeof(*delta_list));
|
|
1328
|
-
|
|
1328
|
+
GIT_ERROR_CHECK_ALLOC(delta_list);
|
|
1329
1329
|
|
|
1330
1330
|
for (i = 0; i < pb->nr_objects; ++i) {
|
|
1331
1331
|
git_pobject *po = pb->object_list + i;
|
|
@@ -1379,21 +1379,25 @@ int git_packbuilder_write(
|
|
|
1379
1379
|
git_packbuilder *pb,
|
|
1380
1380
|
const char *path,
|
|
1381
1381
|
unsigned int mode,
|
|
1382
|
-
|
|
1382
|
+
git_indexer_progress_cb progress_cb,
|
|
1383
1383
|
void *progress_cb_payload)
|
|
1384
1384
|
{
|
|
1385
|
+
git_indexer_options opts = GIT_INDEXER_OPTIONS_INIT;
|
|
1385
1386
|
git_indexer *indexer;
|
|
1386
|
-
|
|
1387
|
+
git_indexer_progress stats;
|
|
1387
1388
|
struct pack_write_context ctx;
|
|
1388
1389
|
int t;
|
|
1389
1390
|
|
|
1390
1391
|
PREPARE_PACK;
|
|
1391
1392
|
|
|
1393
|
+
opts.progress_cb = progress_cb;
|
|
1394
|
+
opts.progress_cb_payload = progress_cb_payload;
|
|
1395
|
+
|
|
1392
1396
|
if (git_indexer_new(
|
|
1393
|
-
&indexer, path, mode, pb->odb,
|
|
1397
|
+
&indexer, path, mode, pb->odb, &opts) < 0)
|
|
1394
1398
|
return -1;
|
|
1395
1399
|
|
|
1396
|
-
if (!
|
|
1400
|
+
if (!git_repository__configmap_lookup(&t, pb->repo, GIT_CONFIGMAP_FSYNCOBJECTFILES) && t)
|
|
1397
1401
|
git_indexer__set_fsync(indexer, 1);
|
|
1398
1402
|
|
|
1399
1403
|
ctx.indexer = indexer;
|
|
@@ -1426,7 +1430,7 @@ static int cb_tree_walk(
|
|
|
1426
1430
|
struct tree_walk_context *ctx = payload;
|
|
1427
1431
|
|
|
1428
1432
|
/* A commit inside a tree represents a submodule commit and should be skipped. */
|
|
1429
|
-
if (git_tree_entry_type(entry) ==
|
|
1433
|
+
if (git_tree_entry_type(entry) == GIT_OBJECT_COMMIT)
|
|
1430
1434
|
return 0;
|
|
1431
1435
|
|
|
1432
1436
|
if (!(error = git_buf_sets(&ctx->buf, root)) &&
|
|
@@ -1474,27 +1478,27 @@ int git_packbuilder_insert_recur(git_packbuilder *pb, const git_oid *id, const c
|
|
|
1474
1478
|
|
|
1475
1479
|
assert(pb && id);
|
|
1476
1480
|
|
|
1477
|
-
if ((error = git_object_lookup(&obj, pb->repo, id,
|
|
1481
|
+
if ((error = git_object_lookup(&obj, pb->repo, id, GIT_OBJECT_ANY)) < 0)
|
|
1478
1482
|
return error;
|
|
1479
1483
|
|
|
1480
1484
|
switch (git_object_type(obj)) {
|
|
1481
|
-
case
|
|
1485
|
+
case GIT_OBJECT_BLOB:
|
|
1482
1486
|
error = git_packbuilder_insert(pb, id, name);
|
|
1483
1487
|
break;
|
|
1484
|
-
case
|
|
1488
|
+
case GIT_OBJECT_TREE:
|
|
1485
1489
|
error = git_packbuilder_insert_tree(pb, id);
|
|
1486
1490
|
break;
|
|
1487
|
-
case
|
|
1491
|
+
case GIT_OBJECT_COMMIT:
|
|
1488
1492
|
error = git_packbuilder_insert_commit(pb, id);
|
|
1489
1493
|
break;
|
|
1490
|
-
case
|
|
1494
|
+
case GIT_OBJECT_TAG:
|
|
1491
1495
|
if ((error = git_packbuilder_insert(pb, id, name)) < 0)
|
|
1492
1496
|
goto cleanup;
|
|
1493
1497
|
error = git_packbuilder_insert_recur(pb, git_tag_target_id((git_tag *) obj), NULL);
|
|
1494
1498
|
break;
|
|
1495
1499
|
|
|
1496
1500
|
default:
|
|
1497
|
-
|
|
1501
|
+
git_error_set(GIT_ERROR_INVALID, "unknown object type");
|
|
1498
1502
|
error = -1;
|
|
1499
1503
|
}
|
|
1500
1504
|
|
|
@@ -1513,13 +1517,13 @@ size_t git_packbuilder_written(git_packbuilder *pb)
|
|
|
1513
1517
|
return pb->nr_written;
|
|
1514
1518
|
}
|
|
1515
1519
|
|
|
1516
|
-
int lookup_walk_object(
|
|
1520
|
+
static int lookup_walk_object(struct walk_object **out, git_packbuilder *pb, const git_oid *id)
|
|
1517
1521
|
{
|
|
1518
|
-
|
|
1522
|
+
struct walk_object *obj;
|
|
1519
1523
|
|
|
1520
1524
|
obj = git_pool_mallocz(&pb->object_pool, 1);
|
|
1521
1525
|
if (!obj) {
|
|
1522
|
-
|
|
1526
|
+
git_error_set_oom();
|
|
1523
1527
|
return -1;
|
|
1524
1528
|
}
|
|
1525
1529
|
|
|
@@ -1529,20 +1533,17 @@ int lookup_walk_object(git_walk_object **out, git_packbuilder *pb, const git_oid
|
|
|
1529
1533
|
return 0;
|
|
1530
1534
|
}
|
|
1531
1535
|
|
|
1532
|
-
static int retrieve_object(
|
|
1536
|
+
static int retrieve_object(struct walk_object **out, git_packbuilder *pb, const git_oid *id)
|
|
1533
1537
|
{
|
|
1538
|
+
struct walk_object *obj;
|
|
1534
1539
|
int error;
|
|
1535
|
-
khiter_t pos;
|
|
1536
|
-
git_walk_object *obj;
|
|
1537
1540
|
|
|
1538
|
-
|
|
1539
|
-
if (git_oidmap_valid_index(pb->walk_objects, pos)) {
|
|
1540
|
-
obj = git_oidmap_value_at(pb->walk_objects, pos);
|
|
1541
|
-
} else {
|
|
1541
|
+
if ((obj = git_oidmap_get(pb->walk_objects, id)) == NULL) {
|
|
1542
1542
|
if ((error = lookup_walk_object(&obj, pb, id)) < 0)
|
|
1543
1543
|
return error;
|
|
1544
1544
|
|
|
1545
|
-
|
|
1545
|
+
if ((error = git_oidmap_set(pb->walk_objects, &obj->id, obj)) < 0)
|
|
1546
|
+
return error;
|
|
1546
1547
|
}
|
|
1547
1548
|
|
|
1548
1549
|
*out = obj;
|
|
@@ -1552,7 +1553,7 @@ static int retrieve_object(git_walk_object **out, git_packbuilder *pb, const git
|
|
|
1552
1553
|
static int mark_blob_uninteresting(git_packbuilder *pb, const git_oid *id)
|
|
1553
1554
|
{
|
|
1554
1555
|
int error;
|
|
1555
|
-
|
|
1556
|
+
struct walk_object *obj;
|
|
1556
1557
|
|
|
1557
1558
|
if ((error = retrieve_object(&obj, pb, id)) < 0)
|
|
1558
1559
|
return error;
|
|
@@ -1564,7 +1565,7 @@ static int mark_blob_uninteresting(git_packbuilder *pb, const git_oid *id)
|
|
|
1564
1565
|
|
|
1565
1566
|
static int mark_tree_uninteresting(git_packbuilder *pb, const git_oid *id)
|
|
1566
1567
|
{
|
|
1567
|
-
|
|
1568
|
+
struct walk_object *obj;
|
|
1568
1569
|
git_tree *tree;
|
|
1569
1570
|
int error;
|
|
1570
1571
|
size_t i;
|
|
@@ -1584,11 +1585,11 @@ static int mark_tree_uninteresting(git_packbuilder *pb, const git_oid *id)
|
|
|
1584
1585
|
const git_tree_entry *entry = git_tree_entry_byindex(tree, i);
|
|
1585
1586
|
const git_oid *entry_id = git_tree_entry_id(entry);
|
|
1586
1587
|
switch (git_tree_entry_type(entry)) {
|
|
1587
|
-
case
|
|
1588
|
+
case GIT_OBJECT_TREE:
|
|
1588
1589
|
if ((error = mark_tree_uninteresting(pb, entry_id)) < 0)
|
|
1589
1590
|
goto cleanup;
|
|
1590
1591
|
break;
|
|
1591
|
-
case
|
|
1592
|
+
case GIT_OBJECT_BLOB:
|
|
1592
1593
|
if ((error = mark_blob_uninteresting(pb, entry_id)) < 0)
|
|
1593
1594
|
goto cleanup;
|
|
1594
1595
|
break;
|
|
@@ -1636,7 +1637,7 @@ int insert_tree(git_packbuilder *pb, git_tree *tree)
|
|
|
1636
1637
|
size_t i;
|
|
1637
1638
|
int error;
|
|
1638
1639
|
git_tree *subtree;
|
|
1639
|
-
|
|
1640
|
+
struct walk_object *obj;
|
|
1640
1641
|
const char *name;
|
|
1641
1642
|
|
|
1642
1643
|
if ((error = retrieve_object(&obj, pb, git_tree_id(tree))) < 0)
|
|
@@ -1654,7 +1655,7 @@ int insert_tree(git_packbuilder *pb, git_tree *tree)
|
|
|
1654
1655
|
const git_tree_entry *entry = git_tree_entry_byindex(tree, i);
|
|
1655
1656
|
const git_oid *entry_id = git_tree_entry_id(entry);
|
|
1656
1657
|
switch (git_tree_entry_type(entry)) {
|
|
1657
|
-
case
|
|
1658
|
+
case GIT_OBJECT_TREE:
|
|
1658
1659
|
if ((error = git_tree_lookup(&subtree, pb->repo, entry_id)) < 0)
|
|
1659
1660
|
return error;
|
|
1660
1661
|
|
|
@@ -1665,8 +1666,8 @@ int insert_tree(git_packbuilder *pb, git_tree *tree)
|
|
|
1665
1666
|
return error;
|
|
1666
1667
|
|
|
1667
1668
|
break;
|
|
1668
|
-
case
|
|
1669
|
-
if ((error = retrieve_object(&obj, pb,
|
|
1669
|
+
case GIT_OBJECT_BLOB:
|
|
1670
|
+
if ((error = retrieve_object(&obj, pb, entry_id)) < 0)
|
|
1670
1671
|
return error;
|
|
1671
1672
|
if (obj->uninteresting)
|
|
1672
1673
|
continue;
|
|
@@ -1684,7 +1685,7 @@ int insert_tree(git_packbuilder *pb, git_tree *tree)
|
|
|
1684
1685
|
return error;
|
|
1685
1686
|
}
|
|
1686
1687
|
|
|
1687
|
-
int insert_commit(git_packbuilder *pb,
|
|
1688
|
+
int insert_commit(git_packbuilder *pb, struct walk_object *obj)
|
|
1688
1689
|
{
|
|
1689
1690
|
int error;
|
|
1690
1691
|
git_commit *commit = NULL;
|
|
@@ -1714,7 +1715,7 @@ int git_packbuilder_insert_walk(git_packbuilder *pb, git_revwalk *walk)
|
|
|
1714
1715
|
{
|
|
1715
1716
|
int error;
|
|
1716
1717
|
git_oid id;
|
|
1717
|
-
|
|
1718
|
+
struct walk_object *obj;
|
|
1718
1719
|
|
|
1719
1720
|
assert(pb && walk);
|
|
1720
1721
|
|
|
@@ -29,8 +29,8 @@
|
|
|
29
29
|
|
|
30
30
|
typedef struct git_pobject {
|
|
31
31
|
git_oid id;
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
git_object_t type;
|
|
33
|
+
off64_t offset;
|
|
34
34
|
|
|
35
35
|
size_t size;
|
|
36
36
|
|
|
@@ -52,12 +52,6 @@ typedef struct git_pobject {
|
|
|
52
52
|
filled:1;
|
|
53
53
|
} git_pobject;
|
|
54
54
|
|
|
55
|
-
typedef struct {
|
|
56
|
-
git_oid id;
|
|
57
|
-
unsigned int uninteresting:1,
|
|
58
|
-
seen:1;
|
|
59
|
-
} git_walk_object;
|
|
60
|
-
|
|
61
55
|
struct git_packbuilder {
|
|
62
56
|
git_repository *repo; /* associated repository */
|
|
63
57
|
git_odb *odb; /* associated object database */
|