rugged 0.28.4.1 → 1.0.1
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/README.md +2 -2
- data/ext/rugged/extconf.rb +3 -1
- data/ext/rugged/rugged.c +35 -31
- data/ext/rugged/rugged.h +13 -0
- data/ext/rugged/rugged_blob.c +11 -9
- data/ext/rugged/rugged_commit.c +17 -15
- data/ext/rugged/rugged_config.c +1 -1
- data/ext/rugged/rugged_diff.c +4 -26
- data/ext/rugged/rugged_index.c +4 -2
- data/ext/rugged/rugged_note.c +5 -3
- data/ext/rugged/rugged_object.c +57 -10
- data/ext/rugged/rugged_rebase.c +3 -1
- data/ext/rugged/rugged_remote.c +32 -8
- data/ext/rugged/rugged_repo.c +232 -17
- data/ext/rugged/rugged_tag.c +8 -6
- data/ext/rugged/rugged_tree.c +18 -16
- data/lib/rugged/commit.rb +1 -2
- data/lib/rugged/repository.rb +5 -6
- data/lib/rugged/submodule_collection.rb +4 -4
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +39 -19
- data/vendor/libgit2/COPYING +28 -0
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +5 -1
- 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/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 +77 -0
- data/vendor/libgit2/cmake/Modules/SanitizeBool.cmake +20 -0
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +56 -0
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +127 -0
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +69 -0
- data/vendor/libgit2/deps/http-parser/http_parser.c +11 -6
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +23 -0
- data/vendor/libgit2/deps/ntlmclient/compat.h +55 -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 +1422 -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/zlib/adler32.c +0 -7
- data/vendor/libgit2/deps/zlib/crc32.c +0 -7
- data/vendor/libgit2/include/git2.h +2 -0
- data/vendor/libgit2/include/git2/apply.h +22 -2
- data/vendor/libgit2/include/git2/attr.h +23 -13
- data/vendor/libgit2/include/git2/blame.h +2 -2
- data/vendor/libgit2/include/git2/blob.h +44 -12
- data/vendor/libgit2/include/git2/branch.h +74 -57
- data/vendor/libgit2/include/git2/buffer.h +20 -14
- data/vendor/libgit2/include/git2/cert.h +135 -0
- data/vendor/libgit2/include/git2/checkout.h +46 -14
- data/vendor/libgit2/include/git2/cherrypick.h +3 -3
- data/vendor/libgit2/include/git2/clone.h +2 -2
- data/vendor/libgit2/include/git2/commit.h +23 -1
- data/vendor/libgit2/include/git2/common.h +15 -6
- data/vendor/libgit2/include/git2/config.h +12 -12
- data/vendor/libgit2/include/git2/cred_helpers.h +4 -42
- data/vendor/libgit2/include/git2/credential.h +314 -0
- data/vendor/libgit2/include/git2/credential_helpers.h +52 -0
- data/vendor/libgit2/include/git2/deprecated.h +321 -3
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +16 -14
- data/vendor/libgit2/include/git2/errors.h +4 -2
- data/vendor/libgit2/include/git2/filter.h +8 -0
- data/vendor/libgit2/include/git2/index.h +2 -1
- data/vendor/libgit2/include/git2/indexer.h +48 -4
- data/vendor/libgit2/include/git2/merge.h +6 -10
- data/vendor/libgit2/include/git2/net.h +0 -5
- data/vendor/libgit2/include/git2/object.h +2 -14
- data/vendor/libgit2/include/git2/odb.h +3 -2
- data/vendor/libgit2/include/git2/odb_backend.h +5 -4
- data/vendor/libgit2/include/git2/oid.h +11 -6
- data/vendor/libgit2/include/git2/pack.h +12 -1
- data/vendor/libgit2/include/git2/proxy.h +6 -4
- data/vendor/libgit2/include/git2/rebase.h +46 -2
- data/vendor/libgit2/include/git2/refs.h +19 -0
- data/vendor/libgit2/include/git2/remote.h +40 -15
- data/vendor/libgit2/include/git2/repository.h +29 -6
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/revwalk.h +7 -3
- data/vendor/libgit2/include/git2/stash.h +4 -4
- data/vendor/libgit2/include/git2/status.h +25 -16
- data/vendor/libgit2/include/git2/submodule.h +20 -3
- data/vendor/libgit2/include/git2/sys/alloc.h +9 -9
- data/vendor/libgit2/include/git2/sys/cred.h +15 -0
- data/vendor/libgit2/include/git2/sys/credential.h +90 -0
- data/vendor/libgit2/include/git2/sys/index.h +4 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +2 -1
- data/vendor/libgit2/include/git2/sys/merge.h +1 -1
- data/vendor/libgit2/include/git2/sys/odb_backend.h +48 -4
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +164 -21
- data/vendor/libgit2/include/git2/sys/repository.h +17 -6
- data/vendor/libgit2/include/git2/sys/transport.h +4 -4
- data/vendor/libgit2/include/git2/tag.h +11 -2
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +11 -340
- data/vendor/libgit2/include/git2/tree.h +5 -3
- data/vendor/libgit2/include/git2/types.h +4 -89
- data/vendor/libgit2/include/git2/version.h +5 -5
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/src/CMakeLists.txt +99 -236
- data/vendor/libgit2/src/alloc.c +2 -14
- data/vendor/libgit2/src/{stdalloc.c → allocators/stdalloc.c} +3 -4
- 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/apply.c +60 -30
- data/vendor/libgit2/src/attr.c +70 -64
- data/vendor/libgit2/src/attr_file.c +189 -96
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +48 -48
- data/vendor/libgit2/src/attrcache.h +2 -1
- data/vendor/libgit2/src/blame.c +17 -5
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +21 -7
- data/vendor/libgit2/src/blob.c +81 -17
- data/vendor/libgit2/src/blob.h +2 -2
- data/vendor/libgit2/src/branch.c +60 -32
- data/vendor/libgit2/src/buffer.c +19 -7
- data/vendor/libgit2/src/buffer.h +1 -0
- data/vendor/libgit2/src/cache.c +33 -36
- data/vendor/libgit2/src/cache.h +1 -1
- data/vendor/libgit2/src/cc-compat.h +5 -0
- data/vendor/libgit2/src/checkout.c +26 -16
- data/vendor/libgit2/src/cherrypick.c +9 -3
- data/vendor/libgit2/src/clone.c +29 -7
- data/vendor/libgit2/src/clone.h +4 -0
- data/vendor/libgit2/src/commit.c +70 -22
- data/vendor/libgit2/src/commit.h +6 -0
- data/vendor/libgit2/src/commit_list.c +28 -76
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +3 -75
- data/vendor/libgit2/src/config.c +31 -40
- data/vendor/libgit2/src/config.h +7 -6
- data/vendor/libgit2/src/config_backend.h +12 -0
- data/vendor/libgit2/src/config_cache.c +39 -39
- data/vendor/libgit2/src/config_entries.c +69 -99
- data/vendor/libgit2/src/config_entries.h +1 -0
- data/vendor/libgit2/src/config_file.c +346 -380
- data/vendor/libgit2/src/config_mem.c +12 -16
- data/vendor/libgit2/src/config_parse.c +49 -29
- data/vendor/libgit2/src/config_parse.h +13 -12
- data/vendor/libgit2/src/config_snapshot.c +206 -0
- data/vendor/libgit2/src/crlf.c +14 -14
- data/vendor/libgit2/src/describe.c +21 -20
- data/vendor/libgit2/src/diff.c +43 -58
- data/vendor/libgit2/src/diff.h +4 -3
- data/vendor/libgit2/src/diff_driver.c +37 -38
- data/vendor/libgit2/src/diff_file.c +12 -10
- data/vendor/libgit2/src/diff_file.h +2 -2
- data/vendor/libgit2/src/diff_generate.c +148 -98
- data/vendor/libgit2/src/diff_generate.h +2 -2
- data/vendor/libgit2/src/diff_parse.c +1 -1
- data/vendor/libgit2/src/diff_print.c +25 -13
- data/vendor/libgit2/src/diff_stats.c +1 -1
- data/vendor/libgit2/src/diff_tform.c +11 -11
- data/vendor/libgit2/src/errors.c +21 -25
- data/vendor/libgit2/src/errors.h +81 -0
- data/vendor/libgit2/src/features.h.in +9 -2
- data/vendor/libgit2/src/fetch.c +7 -2
- data/vendor/libgit2/src/fetchhead.c +36 -4
- data/vendor/libgit2/src/filebuf.c +6 -10
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/filter.c +16 -8
- data/vendor/libgit2/src/{fileops.c → futils.c} +21 -17
- data/vendor/libgit2/src/{fileops.h → futils.h} +5 -5
- data/vendor/libgit2/src/global.c +12 -40
- data/vendor/libgit2/src/global.h +0 -2
- data/vendor/libgit2/src/hash.c +61 -0
- data/vendor/libgit2/src/hash.h +19 -21
- data/vendor/libgit2/src/hash/sha1.h +38 -0
- data/vendor/libgit2/src/hash/{hash_collisiondetect.h → sha1/collisiondetect.c} +14 -17
- data/vendor/libgit2/src/{sha1_lookup.h → hash/sha1/collisiondetect.h} +8 -8
- data/vendor/libgit2/src/hash/{hash_common_crypto.h → sha1/common_crypto.c} +15 -19
- 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 -14
- 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 -11
- data/vendor/libgit2/src/hash/{hash_openssl.h → sha1/openssl.c} +14 -18
- 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/{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/hash/{hash_win32.c → sha1/win32.c} +34 -24
- data/vendor/libgit2/src/hash/{hash_win32.h → sha1/win32.h} +6 -19
- data/vendor/libgit2/src/hashsig.c +1 -1
- data/vendor/libgit2/src/idxmap.c +91 -65
- data/vendor/libgit2/src/idxmap.h +151 -15
- data/vendor/libgit2/src/ignore.c +32 -38
- data/vendor/libgit2/src/index.c +105 -83
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +71 -72
- data/vendor/libgit2/src/integer.h +39 -4
- data/vendor/libgit2/src/iterator.c +40 -35
- data/vendor/libgit2/src/iterator.h +8 -8
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +78 -51
- data/vendor/libgit2/src/merge.h +2 -2
- data/vendor/libgit2/src/merge_driver.c +5 -5
- data/vendor/libgit2/src/merge_file.c +1 -1
- data/vendor/libgit2/src/mwindow.c +18 -23
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/net.c +411 -0
- data/vendor/libgit2/src/net.h +57 -0
- data/vendor/libgit2/src/netops.c +6 -193
- data/vendor/libgit2/src/netops.h +1 -34
- data/vendor/libgit2/src/notes.c +8 -5
- data/vendor/libgit2/src/object.c +3 -3
- data/vendor/libgit2/src/object.h +2 -0
- data/vendor/libgit2/src/odb.c +41 -23
- data/vendor/libgit2/src/odb.h +3 -2
- data/vendor/libgit2/src/odb_loose.c +17 -10
- data/vendor/libgit2/src/odb_mempack.c +13 -24
- data/vendor/libgit2/src/odb_pack.c +4 -5
- data/vendor/libgit2/src/offmap.c +43 -55
- data/vendor/libgit2/src/offmap.h +102 -24
- data/vendor/libgit2/src/oid.c +19 -8
- data/vendor/libgit2/src/oidmap.c +39 -57
- data/vendor/libgit2/src/oidmap.h +99 -19
- data/vendor/libgit2/src/pack-objects.c +28 -33
- data/vendor/libgit2/src/pack-objects.h +1 -1
- data/vendor/libgit2/src/pack.c +117 -129
- data/vendor/libgit2/src/pack.h +15 -18
- data/vendor/libgit2/src/parse.c +10 -0
- data/vendor/libgit2/src/parse.h +3 -3
- data/vendor/libgit2/src/patch.c +1 -1
- data/vendor/libgit2/src/patch_generate.c +2 -2
- data/vendor/libgit2/src/patch_parse.c +130 -33
- data/vendor/libgit2/src/path.c +43 -6
- data/vendor/libgit2/src/path.h +2 -0
- data/vendor/libgit2/src/pathspec.c +14 -14
- data/vendor/libgit2/src/pool.c +26 -22
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +7 -7
- data/vendor/libgit2/src/posix.h +12 -1
- data/vendor/libgit2/src/proxy.c +7 -2
- data/vendor/libgit2/src/push.c +13 -7
- data/vendor/libgit2/src/reader.c +2 -2
- data/vendor/libgit2/src/rebase.c +87 -28
- data/vendor/libgit2/src/refdb.c +12 -0
- data/vendor/libgit2/src/refdb_fs.c +219 -167
- data/vendor/libgit2/src/reflog.c +11 -13
- data/vendor/libgit2/src/refs.c +39 -23
- data/vendor/libgit2/src/refs.h +8 -1
- data/vendor/libgit2/src/refspec.c +9 -16
- data/vendor/libgit2/src/regexp.c +221 -0
- data/vendor/libgit2/src/regexp.h +97 -0
- data/vendor/libgit2/src/remote.c +57 -55
- data/vendor/libgit2/src/remote.h +2 -2
- data/vendor/libgit2/src/repository.c +187 -154
- data/vendor/libgit2/src/repository.h +49 -40
- data/vendor/libgit2/src/revert.c +8 -3
- data/vendor/libgit2/src/revparse.c +18 -19
- data/vendor/libgit2/src/revwalk.c +72 -34
- data/vendor/libgit2/src/revwalk.h +20 -0
- data/vendor/libgit2/src/settings.c +13 -1
- data/vendor/libgit2/src/sortedcache.c +12 -26
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +47 -67
- data/vendor/libgit2/src/status.c +17 -11
- data/vendor/libgit2/src/streams/openssl.c +54 -2
- data/vendor/libgit2/src/streams/socket.c +2 -2
- data/vendor/libgit2/src/strmap.c +37 -84
- data/vendor/libgit2/src/strmap.h +105 -33
- data/vendor/libgit2/src/submodule.c +151 -126
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +11 -1
- data/vendor/libgit2/src/tag.c +10 -2
- data/vendor/libgit2/src/trace.c +1 -1
- data/vendor/libgit2/src/trace.h +3 -3
- data/vendor/libgit2/src/trailer.c +46 -32
- data/vendor/libgit2/src/transaction.c +10 -9
- data/vendor/libgit2/src/transports/auth.c +16 -15
- data/vendor/libgit2/src/transports/auth.h +18 -11
- data/vendor/libgit2/src/transports/auth_negotiate.c +64 -33
- 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 +38 -0
- data/vendor/libgit2/src/transports/credential.c +476 -0
- data/vendor/libgit2/src/transports/{cred_helpers.c → credential_helpers.c} +21 -8
- data/vendor/libgit2/src/transports/git.c +11 -16
- data/vendor/libgit2/src/transports/http.c +488 -1248
- data/vendor/libgit2/src/transports/http.h +4 -1
- data/vendor/libgit2/src/transports/httpclient.c +1549 -0
- data/vendor/libgit2/src/transports/httpclient.h +190 -0
- data/vendor/libgit2/src/transports/local.c +10 -10
- data/vendor/libgit2/src/transports/smart.c +19 -19
- data/vendor/libgit2/src/transports/smart.h +3 -3
- data/vendor/libgit2/src/transports/smart_pkt.c +1 -1
- data/vendor/libgit2/src/transports/smart_protocol.c +40 -64
- data/vendor/libgit2/src/transports/ssh.c +77 -59
- data/vendor/libgit2/src/transports/winhttp.c +272 -242
- data/vendor/libgit2/src/tree-cache.c +14 -7
- data/vendor/libgit2/src/tree.c +16 -26
- data/vendor/libgit2/src/unix/map.c +1 -1
- data/vendor/libgit2/src/unix/posix.h +2 -12
- data/vendor/libgit2/src/userdiff.h +3 -1
- data/vendor/libgit2/src/util.c +51 -53
- data/vendor/libgit2/src/util.h +16 -21
- data/vendor/libgit2/src/wildmatch.c +320 -0
- data/vendor/libgit2/src/wildmatch.h +23 -0
- data/vendor/libgit2/src/win32/map.c +3 -5
- data/vendor/libgit2/src/win32/path_w32.c +40 -3
- data/vendor/libgit2/src/win32/path_w32.h +15 -29
- data/vendor/libgit2/src/win32/posix.h +1 -4
- data/vendor/libgit2/src/win32/posix_w32.c +47 -5
- 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 +7 -3
- data/vendor/libgit2/src/win32/w32_common.h +39 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +0 -93
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +0 -2
- data/vendor/libgit2/src/win32/w32_stack.c +4 -9
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +31 -0
- data/vendor/libgit2/src/win32/w32_util.h +6 -32
- data/vendor/libgit2/src/worktree.c +79 -49
- data/vendor/libgit2/src/xdiff/xdiffi.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +12 -0
- data/vendor/libgit2/src/xdiff/xpatience.c +3 -0
- data/vendor/libgit2/src/zstream.c +5 -0
- data/vendor/libgit2/src/zstream.h +1 -0
- metadata +108 -41
- data/vendor/libgit2/deps/regex/CMakeLists.txt +0 -2
- data/vendor/libgit2/deps/regex/COPYING +0 -502
- 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/fnmatch.c +0 -248
- data/vendor/libgit2/src/fnmatch.h +0 -48
- data/vendor/libgit2/src/sha1_lookup.c +0 -35
- data/vendor/libgit2/src/transports/cred.c +0 -390
data/vendor/libgit2/src/oid.c
CHANGED
@@ -64,13 +64,13 @@ GIT_INLINE(char) *fmt_one(char *str, unsigned int val)
|
|
64
64
|
return str;
|
65
65
|
}
|
66
66
|
|
67
|
-
|
67
|
+
int git_oid_nfmt(char *str, size_t n, const git_oid *oid)
|
68
68
|
{
|
69
69
|
size_t i, max_i;
|
70
70
|
|
71
71
|
if (!oid) {
|
72
72
|
memset(str, 0, n);
|
73
|
-
return;
|
73
|
+
return 0;
|
74
74
|
}
|
75
75
|
if (n > GIT_OID_HEXSZ) {
|
76
76
|
memset(&str[GIT_OID_HEXSZ], 0, n - GIT_OID_HEXSZ);
|
@@ -84,14 +84,16 @@ void git_oid_nfmt(char *str, size_t n, const git_oid *oid)
|
|
84
84
|
|
85
85
|
if (n & 1)
|
86
86
|
*str++ = to_hex[oid->id[i] >> 4];
|
87
|
+
|
88
|
+
return 0;
|
87
89
|
}
|
88
90
|
|
89
|
-
|
91
|
+
int git_oid_fmt(char *str, const git_oid *oid)
|
90
92
|
{
|
91
|
-
git_oid_nfmt(str, GIT_OID_HEXSZ, oid);
|
93
|
+
return git_oid_nfmt(str, GIT_OID_HEXSZ, oid);
|
92
94
|
}
|
93
95
|
|
94
|
-
|
96
|
+
int git_oid_pathfmt(char *str, const git_oid *oid)
|
95
97
|
{
|
96
98
|
size_t i;
|
97
99
|
|
@@ -99,6 +101,8 @@ void git_oid_pathfmt(char *str, const git_oid *oid)
|
|
99
101
|
*str++ = '/';
|
100
102
|
for (i = 1; i < sizeof(oid->id); i++)
|
101
103
|
str = fmt_one(str, oid->id[i]);
|
104
|
+
|
105
|
+
return 0;
|
102
106
|
}
|
103
107
|
|
104
108
|
char *git_oid_tostr_s(const git_oid *oid)
|
@@ -167,14 +171,16 @@ void git_oid__writebuf(git_buf *buf, const char *header, const git_oid *oid)
|
|
167
171
|
git_buf_putc(buf, '\n');
|
168
172
|
}
|
169
173
|
|
170
|
-
|
174
|
+
int git_oid_fromraw(git_oid *out, const unsigned char *raw)
|
171
175
|
{
|
172
176
|
memcpy(out->id, raw, sizeof(out->id));
|
177
|
+
return 0;
|
173
178
|
}
|
174
179
|
|
175
|
-
|
180
|
+
int git_oid_cpy(git_oid *out, const git_oid *src)
|
176
181
|
{
|
177
182
|
memcpy(out->id, src->id, sizeof(out->id));
|
183
|
+
return 0;
|
178
184
|
}
|
179
185
|
|
180
186
|
int git_oid_cmp(const git_oid *a, const git_oid *b)
|
@@ -237,7 +243,7 @@ int git_oid_streq(const git_oid *oid_a, const char *str)
|
|
237
243
|
return git_oid_strcmp(oid_a, str) == 0 ? 0 : -1;
|
238
244
|
}
|
239
245
|
|
240
|
-
int
|
246
|
+
int git_oid_is_zero(const git_oid *oid_a)
|
241
247
|
{
|
242
248
|
const unsigned char *a = oid_a->id;
|
243
249
|
unsigned int i;
|
@@ -247,6 +253,11 @@ int git_oid_iszero(const git_oid *oid_a)
|
|
247
253
|
return 1;
|
248
254
|
}
|
249
255
|
|
256
|
+
int git_oid_iszero(const git_oid *oid_a)
|
257
|
+
{
|
258
|
+
return git_oid_is_zero(oid_a);
|
259
|
+
}
|
260
|
+
|
250
261
|
typedef short node_index;
|
251
262
|
|
252
263
|
typedef union {
|
data/vendor/libgit2/src/oidmap.c
CHANGED
@@ -25,9 +25,12 @@ GIT_INLINE(khint_t) git_oidmap_hash(const git_oid *oid)
|
|
25
25
|
|
26
26
|
__KHASH_IMPL(oid, static kh_inline, const git_oid *, void *, 1, git_oidmap_hash, git_oid_equal)
|
27
27
|
|
28
|
-
git_oidmap
|
28
|
+
int git_oidmap_new(git_oidmap **out)
|
29
29
|
{
|
30
|
-
|
30
|
+
*out = kh_init(oid);
|
31
|
+
GIT_ERROR_CHECK_ALLOC(*out);
|
32
|
+
|
33
|
+
return 0;
|
31
34
|
}
|
32
35
|
|
33
36
|
void git_oidmap_free(git_oidmap *map)
|
@@ -45,81 +48,60 @@ size_t git_oidmap_size(git_oidmap *map)
|
|
45
48
|
return kh_size(map);
|
46
49
|
}
|
47
50
|
|
48
|
-
|
49
|
-
{
|
50
|
-
return kh_get(oid, map, key);
|
51
|
-
}
|
52
|
-
|
53
|
-
int git_oidmap_valid_index(git_oidmap *map, size_t idx)
|
54
|
-
{
|
55
|
-
return idx != kh_end(map);
|
56
|
-
}
|
57
|
-
|
58
|
-
int git_oidmap_exists(git_oidmap *map, const git_oid *key)
|
51
|
+
void *git_oidmap_get(git_oidmap *map, const git_oid *key)
|
59
52
|
{
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
{
|
65
|
-
return kh_exist(map, idx);
|
53
|
+
size_t idx = kh_get(oid, map, key);
|
54
|
+
if (idx == kh_end(map) || !kh_exist(map, idx))
|
55
|
+
return NULL;
|
56
|
+
return kh_val(map, idx);
|
66
57
|
}
|
67
58
|
|
68
|
-
|
59
|
+
int git_oidmap_set(git_oidmap *map, const git_oid *key, void *value)
|
69
60
|
{
|
70
|
-
|
71
|
-
|
61
|
+
size_t idx;
|
62
|
+
int rval;
|
72
63
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
}
|
64
|
+
idx = kh_put(oid, map, key, &rval);
|
65
|
+
if (rval < 0)
|
66
|
+
return -1;
|
77
67
|
|
78
|
-
|
79
|
-
|
80
|
-
return kh_val(map, idx);
|
81
|
-
}
|
68
|
+
if (rval == 0)
|
69
|
+
kh_key(map, idx) = key;
|
82
70
|
|
83
|
-
void git_oidmap_set_value_at(git_oidmap *map, size_t idx, void *value)
|
84
|
-
{
|
85
71
|
kh_val(map, idx) = value;
|
72
|
+
|
73
|
+
return 0;
|
86
74
|
}
|
87
75
|
|
88
|
-
|
76
|
+
int git_oidmap_delete(git_oidmap *map, const git_oid *key)
|
89
77
|
{
|
78
|
+
khiter_t idx = kh_get(oid, map, key);
|
79
|
+
if (idx == kh_end(map))
|
80
|
+
return GIT_ENOTFOUND;
|
90
81
|
kh_del(oid, map, idx);
|
82
|
+
return 0;
|
91
83
|
}
|
92
84
|
|
93
|
-
int
|
85
|
+
int git_oidmap_exists(git_oidmap *map, const git_oid *key)
|
94
86
|
{
|
95
|
-
return
|
87
|
+
return kh_get(oid, map, key) != kh_end(map);
|
96
88
|
}
|
97
89
|
|
98
|
-
void
|
90
|
+
int git_oidmap_iterate(void **value, git_oidmap *map, size_t *iter, const git_oid **key)
|
99
91
|
{
|
100
|
-
|
92
|
+
size_t i = *iter;
|
101
93
|
|
102
|
-
|
103
|
-
|
104
|
-
kh_key(map, idx) = key;
|
105
|
-
kh_val(map, idx) = value;
|
106
|
-
}
|
107
|
-
}
|
94
|
+
while (i < map->n_buckets && !kh_exist(map, i))
|
95
|
+
i++;
|
108
96
|
|
109
|
-
|
110
|
-
|
111
|
-
khiter_t idx = git_oidmap_lookup_index(map, key);
|
112
|
-
if (git_oidmap_valid_index(map, idx))
|
113
|
-
git_oidmap_delete_at(map, idx);
|
114
|
-
}
|
97
|
+
if (i >= map->n_buckets)
|
98
|
+
return GIT_ITEROVER;
|
115
99
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
100
|
+
if (key)
|
101
|
+
*key = kh_key(map, i);
|
102
|
+
if (value)
|
103
|
+
*value = kh_value(map, i);
|
104
|
+
*iter = ++i;
|
121
105
|
|
122
|
-
|
123
|
-
{
|
124
|
-
return map->n_buckets;
|
106
|
+
return 0;
|
125
107
|
}
|
data/vendor/libgit2/src/oidmap.h
CHANGED
@@ -11,37 +11,117 @@
|
|
11
11
|
|
12
12
|
#include "git2/oid.h"
|
13
13
|
|
14
|
+
/** A map with `git_oid`s as key. */
|
14
15
|
typedef struct kh_oid_s git_oidmap;
|
15
16
|
|
16
|
-
|
17
|
+
/**
|
18
|
+
* Allocate a new OID map.
|
19
|
+
*
|
20
|
+
* @param out Pointer to the map that shall be allocated.
|
21
|
+
* @return 0 on success, an error code if allocation has failed.
|
22
|
+
*/
|
23
|
+
int git_oidmap_new(git_oidmap **out);
|
24
|
+
|
25
|
+
/**
|
26
|
+
* Free memory associated with the map.
|
27
|
+
*
|
28
|
+
* Note that this function will _not_ free values added to this
|
29
|
+
* map.
|
30
|
+
*
|
31
|
+
* @param map Pointer to the map that is to be free'd. May be
|
32
|
+
* `NULL`.
|
33
|
+
*/
|
17
34
|
void git_oidmap_free(git_oidmap *map);
|
35
|
+
|
36
|
+
/**
|
37
|
+
* Clear all entries from the map.
|
38
|
+
*
|
39
|
+
* This function will remove all entries from the associated map.
|
40
|
+
* Memory associated with it will not be released, though.
|
41
|
+
*
|
42
|
+
* @param map Pointer to the map that shall be cleared. May be
|
43
|
+
* `NULL`.
|
44
|
+
*/
|
18
45
|
void git_oidmap_clear(git_oidmap *map);
|
19
46
|
|
47
|
+
/**
|
48
|
+
* Return the number of elements in the map.
|
49
|
+
*
|
50
|
+
* @parameter map map containing the elements
|
51
|
+
* @return number of elements in the map
|
52
|
+
*/
|
20
53
|
size_t git_oidmap_size(git_oidmap *map);
|
21
54
|
|
22
|
-
|
23
|
-
|
55
|
+
/**
|
56
|
+
* Return value associated with the given key.
|
57
|
+
*
|
58
|
+
* @param map map to search key in
|
59
|
+
* @param key key to search for
|
60
|
+
* @return value associated with the given key or NULL if the key was not found
|
61
|
+
*/
|
62
|
+
void *git_oidmap_get(git_oidmap *map, const git_oid *key);
|
24
63
|
|
25
|
-
|
26
|
-
|
64
|
+
/**
|
65
|
+
* Set the entry for key to value.
|
66
|
+
*
|
67
|
+
* If the map has no corresponding entry for the given key, a new
|
68
|
+
* entry will be created with the given value. If an entry exists
|
69
|
+
* already, its value will be updated to match the given value.
|
70
|
+
*
|
71
|
+
* @param map map to create new entry in
|
72
|
+
* @param key key to set
|
73
|
+
* @param value value to associate the key with; may be NULL
|
74
|
+
* @return zero if the key was successfully set, a negative error
|
75
|
+
* code otherwise
|
76
|
+
*/
|
77
|
+
int git_oidmap_set(git_oidmap *map, const git_oid *key, void *value);
|
27
78
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
79
|
+
/**
|
80
|
+
* Delete an entry from the map.
|
81
|
+
*
|
82
|
+
* Delete the given key and its value from the map. If no such
|
83
|
+
* key exists, this will do nothing.
|
84
|
+
*
|
85
|
+
* @param map map to delete key in
|
86
|
+
* @param key key to delete
|
87
|
+
* @return `0` if the key has been deleted, GIT_ENOTFOUND if no
|
88
|
+
* such key was found, a negative code in case of an
|
89
|
+
* error
|
90
|
+
*/
|
91
|
+
int git_oidmap_delete(git_oidmap *map, const git_oid *key);
|
33
92
|
|
34
|
-
|
35
|
-
|
36
|
-
|
93
|
+
/**
|
94
|
+
* Check whether a key exists in the given map.
|
95
|
+
*
|
96
|
+
* @param map map to query for the key
|
97
|
+
* @param key key to search for
|
98
|
+
* @return 0 if the key has not been found, 1 otherwise
|
99
|
+
*/
|
100
|
+
int git_oidmap_exists(git_oidmap *map, const git_oid *key);
|
37
101
|
|
38
|
-
|
39
|
-
|
102
|
+
/**
|
103
|
+
* Iterate over entries of the map.
|
104
|
+
*
|
105
|
+
* This functions allows to iterate over all key-value entries of
|
106
|
+
* the map. The current position is stored in the `iter` variable
|
107
|
+
* and should be initialized to `0` before the first call to this
|
108
|
+
* function.
|
109
|
+
*
|
110
|
+
* @param map map to iterate over
|
111
|
+
* @param value pointer to the variable where to store the current
|
112
|
+
* value. May be NULL.
|
113
|
+
* @param iter iterator storing the current position. Initialize
|
114
|
+
* with zero previous to the first call.
|
115
|
+
* @param key pointer to the variable where to store the current
|
116
|
+
* key. May be NULL.
|
117
|
+
* @return `0` if the next entry was correctly retrieved.
|
118
|
+
* GIT_ITEROVER if no entries are left. A negative error
|
119
|
+
* code otherwise.
|
120
|
+
*/
|
121
|
+
int git_oidmap_iterate(void **value, git_oidmap *map, size_t *iter, const git_oid **key);
|
40
122
|
|
41
|
-
#define git_oidmap_foreach_value(h, vvar, code) { size_t __i;
|
42
|
-
|
43
|
-
if (!git_oidmap_has_data(h,__i)) continue; \
|
44
|
-
(vvar) = git_oidmap_value_at(h,__i); \
|
123
|
+
#define git_oidmap_foreach_value(h, vvar, code) { size_t __i = 0; \
|
124
|
+
while (git_oidmap_iterate((void **) &(vvar), h, &__i, NULL) == 0) { \
|
45
125
|
code; \
|
46
126
|
} }
|
47
127
|
|
@@ -38,7 +38,7 @@ struct tree_walk_context {
|
|
38
38
|
|
39
39
|
struct pack_write_context {
|
40
40
|
git_indexer *indexer;
|
41
|
-
|
41
|
+
git_indexer_progress *stats;
|
42
42
|
};
|
43
43
|
|
44
44
|
struct walk_object {
|
@@ -141,12 +141,10 @@ int git_packbuilder_new(git_packbuilder **out, git_repository *repo)
|
|
141
141
|
pb = git__calloc(1, sizeof(*pb));
|
142
142
|
GIT_ERROR_CHECK_ALLOC(pb);
|
143
143
|
|
144
|
-
pb->object_ix
|
145
|
-
if (!pb->object_ix)
|
144
|
+
if (git_oidmap_new(&pb->object_ix) < 0)
|
146
145
|
goto on_error;
|
147
146
|
|
148
|
-
pb->walk_objects
|
149
|
-
if (!pb->walk_objects)
|
147
|
+
if (git_oidmap_new(&pb->walk_objects) < 0)
|
150
148
|
goto on_error;
|
151
149
|
|
152
150
|
git_pool_init(&pb->object_pool, sizeof(struct walk_object));
|
@@ -194,24 +192,26 @@ unsigned int git_packbuilder_set_threads(git_packbuilder *pb, unsigned int n)
|
|
194
192
|
return pb->nr_threads;
|
195
193
|
}
|
196
194
|
|
197
|
-
static
|
195
|
+
static int rehash(git_packbuilder *pb)
|
198
196
|
{
|
199
197
|
git_pobject *po;
|
200
|
-
size_t
|
201
|
-
int ret;
|
198
|
+
size_t i;
|
202
199
|
|
203
200
|
git_oidmap_clear(pb->object_ix);
|
201
|
+
|
204
202
|
for (i = 0, po = pb->object_list; i < pb->nr_objects; i++, po++) {
|
205
|
-
|
206
|
-
|
203
|
+
if (git_oidmap_set(pb->object_ix, &po->id, po) < 0)
|
204
|
+
return -1;
|
207
205
|
}
|
206
|
+
|
207
|
+
return 0;
|
208
208
|
}
|
209
209
|
|
210
210
|
int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
211
211
|
const char *name)
|
212
212
|
{
|
213
213
|
git_pobject *po;
|
214
|
-
size_t newsize
|
214
|
+
size_t newsize;
|
215
215
|
int ret;
|
216
216
|
|
217
217
|
assert(pb && oid);
|
@@ -223,7 +223,7 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
223
223
|
|
224
224
|
if (pb->nr_objects >= pb->nr_alloc) {
|
225
225
|
GIT_ERROR_CHECK_ALLOC_ADD(&newsize, pb->nr_alloc, 1024);
|
226
|
-
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&newsize, newsize
|
226
|
+
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&newsize, newsize / 2, 3);
|
227
227
|
|
228
228
|
if (!git__is_uint32(newsize)) {
|
229
229
|
git_error_set(GIT_ERROR_NOMEMORY, "packfile too large to fit in memory.");
|
@@ -235,7 +235,9 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
235
235
|
pb->object_list = git__reallocarray(pb->object_list,
|
236
236
|
pb->nr_alloc, sizeof(*po));
|
237
237
|
GIT_ERROR_CHECK_ALLOC(pb->object_list);
|
238
|
-
|
238
|
+
|
239
|
+
if (rehash(pb) < 0)
|
240
|
+
return -1;
|
239
241
|
}
|
240
242
|
|
241
243
|
po = pb->object_list + pb->nr_objects;
|
@@ -248,13 +250,10 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
248
250
|
git_oid_cpy(&po->id, oid);
|
249
251
|
po->hash = name_hash(name);
|
250
252
|
|
251
|
-
|
252
|
-
if (ret < 0) {
|
253
|
+
if (git_oidmap_set(pb->object_ix, &po->id, po) < 0) {
|
253
254
|
git_error_set_oom();
|
254
|
-
return
|
255
|
+
return -1;
|
255
256
|
}
|
256
|
-
assert(ret != 0);
|
257
|
-
git_oidmap_set_value_at(pb->object_ix, pos, po);
|
258
257
|
|
259
258
|
pb->done = false;
|
260
259
|
|
@@ -375,7 +374,9 @@ static int write_object(
|
|
375
374
|
GIT_ERROR_CHECK_ALLOC(zbuf);
|
376
375
|
|
377
376
|
git_zstream_reset(&pb->zstream);
|
378
|
-
|
377
|
+
|
378
|
+
if ((error = git_zstream_set_input(&pb->zstream, data, data_len)) < 0)
|
379
|
+
goto done;
|
379
380
|
|
380
381
|
while (!git_zstream_done(&pb->zstream)) {
|
381
382
|
if ((error = git_zstream_get_output(zbuf, &zbuf_len, &pb->zstream)) < 0 ||
|
@@ -514,15 +515,12 @@ static int cb_tag_foreach(const char *name, git_oid *oid, void *data)
|
|
514
515
|
{
|
515
516
|
git_packbuilder *pb = data;
|
516
517
|
git_pobject *po;
|
517
|
-
size_t pos;
|
518
518
|
|
519
519
|
GIT_UNUSED(name);
|
520
520
|
|
521
|
-
|
522
|
-
if (!git_oidmap_valid_index(pb->object_ix, pos))
|
521
|
+
if ((po = git_oidmap_get(pb->object_ix, oid)) == NULL)
|
523
522
|
return 0;
|
524
523
|
|
525
|
-
po = git_oidmap_value_at(pb->object_ix, pos);
|
526
524
|
po->tagged = 1;
|
527
525
|
|
528
526
|
/* TODO: peel objects */
|
@@ -1383,12 +1381,12 @@ int git_packbuilder_write(
|
|
1383
1381
|
git_packbuilder *pb,
|
1384
1382
|
const char *path,
|
1385
1383
|
unsigned int mode,
|
1386
|
-
|
1384
|
+
git_indexer_progress_cb progress_cb,
|
1387
1385
|
void *progress_cb_payload)
|
1388
1386
|
{
|
1389
1387
|
git_indexer_options opts = GIT_INDEXER_OPTIONS_INIT;
|
1390
1388
|
git_indexer *indexer;
|
1391
|
-
|
1389
|
+
git_indexer_progress stats;
|
1392
1390
|
struct pack_write_context ctx;
|
1393
1391
|
int t;
|
1394
1392
|
|
@@ -1401,7 +1399,7 @@ int git_packbuilder_write(
|
|
1401
1399
|
&indexer, path, mode, pb->odb, &opts) < 0)
|
1402
1400
|
return -1;
|
1403
1401
|
|
1404
|
-
if (!
|
1402
|
+
if (!git_repository__configmap_lookup(&t, pb->repo, GIT_CONFIGMAP_FSYNCOBJECTFILES) && t)
|
1405
1403
|
git_indexer__set_fsync(indexer, 1);
|
1406
1404
|
|
1407
1405
|
ctx.indexer = indexer;
|
@@ -1539,18 +1537,15 @@ static int lookup_walk_object(struct walk_object **out, git_packbuilder *pb, con
|
|
1539
1537
|
|
1540
1538
|
static int retrieve_object(struct walk_object **out, git_packbuilder *pb, const git_oid *id)
|
1541
1539
|
{
|
1542
|
-
int error;
|
1543
|
-
size_t pos;
|
1544
1540
|
struct walk_object *obj;
|
1541
|
+
int error;
|
1545
1542
|
|
1546
|
-
|
1547
|
-
if (git_oidmap_valid_index(pb->walk_objects, pos)) {
|
1548
|
-
obj = git_oidmap_value_at(pb->walk_objects, pos);
|
1549
|
-
} else {
|
1543
|
+
if ((obj = git_oidmap_get(pb->walk_objects, id)) == NULL) {
|
1550
1544
|
if ((error = lookup_walk_object(&obj, pb, id)) < 0)
|
1551
1545
|
return error;
|
1552
1546
|
|
1553
|
-
|
1547
|
+
if ((error = git_oidmap_set(pb->walk_objects, &obj->id, obj)) < 0)
|
1548
|
+
return error;
|
1554
1549
|
}
|
1555
1550
|
|
1556
1551
|
*out = obj;
|