rugged 0.28.4 → 0.28.4.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/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +0 -1
- data/vendor/libgit2/CMakeLists.txt +16 -36
- data/vendor/libgit2/COPYING +0 -28
- data/vendor/libgit2/cmake/Modules/EnableWarnings.cmake +1 -5
- data/vendor/libgit2/cmake/Modules/FindCoreFoundation.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindGSSAPI.cmake +1 -1
- data/vendor/libgit2/cmake/Modules/FindSecurity.cmake +2 -2
- data/vendor/libgit2/cmake/Modules/FindStatNsec.cmake +0 -6
- data/vendor/libgit2/deps/http-parser/http_parser.c +6 -11
- data/vendor/libgit2/deps/regex/CMakeLists.txt +2 -0
- data/vendor/libgit2/deps/regex/COPYING +502 -0
- data/vendor/libgit2/deps/regex/config.h +7 -0
- data/vendor/libgit2/deps/regex/regcomp.c +3857 -0
- data/vendor/libgit2/deps/regex/regex.c +92 -0
- data/vendor/libgit2/deps/regex/regex.h +582 -0
- data/vendor/libgit2/deps/regex/regex_internal.c +1744 -0
- data/vendor/libgit2/deps/regex/regex_internal.h +819 -0
- data/vendor/libgit2/deps/regex/regexec.c +4369 -0
- data/vendor/libgit2/deps/zlib/adler32.c +7 -0
- data/vendor/libgit2/deps/zlib/crc32.c +7 -0
- data/vendor/libgit2/include/git2.h +0 -2
- data/vendor/libgit2/include/git2/apply.h +2 -22
- data/vendor/libgit2/include/git2/attr.h +12 -19
- data/vendor/libgit2/include/git2/blame.h +2 -2
- data/vendor/libgit2/include/git2/blob.h +12 -44
- data/vendor/libgit2/include/git2/buffer.h +14 -20
- data/vendor/libgit2/include/git2/checkout.h +14 -46
- 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 +1 -23
- data/vendor/libgit2/include/git2/common.h +5 -7
- data/vendor/libgit2/include/git2/config.h +12 -12
- data/vendor/libgit2/include/git2/deprecated.h +3 -243
- data/vendor/libgit2/include/git2/describe.h +4 -4
- data/vendor/libgit2/include/git2/diff.h +14 -16
- data/vendor/libgit2/include/git2/filter.h +0 -8
- data/vendor/libgit2/include/git2/index.h +1 -2
- data/vendor/libgit2/include/git2/indexer.h +4 -48
- data/vendor/libgit2/include/git2/inttypes.h +309 -0
- data/vendor/libgit2/include/git2/merge.h +10 -6
- data/vendor/libgit2/include/git2/net.h +5 -0
- data/vendor/libgit2/include/git2/object.h +14 -2
- data/vendor/libgit2/include/git2/odb.h +2 -3
- data/vendor/libgit2/include/git2/odb_backend.h +4 -5
- data/vendor/libgit2/include/git2/oid.h +1 -1
- data/vendor/libgit2/include/git2/pack.h +1 -12
- data/vendor/libgit2/include/git2/proxy.h +3 -5
- data/vendor/libgit2/include/git2/rebase.h +2 -46
- data/vendor/libgit2/include/git2/refs.h +0 -19
- data/vendor/libgit2/include/git2/remote.h +12 -35
- data/vendor/libgit2/include/git2/repository.h +2 -24
- data/vendor/libgit2/include/git2/revert.h +1 -1
- data/vendor/libgit2/include/git2/stash.h +3 -3
- data/vendor/libgit2/include/git2/status.h +16 -25
- data/vendor/libgit2/include/git2/submodule.h +3 -20
- data/vendor/libgit2/include/git2/sys/alloc.h +9 -9
- data/vendor/libgit2/include/git2/sys/odb_backend.h +4 -48
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +21 -57
- data/vendor/libgit2/include/git2/sys/repository.h +1 -5
- data/vendor/libgit2/include/git2/sys/time.h +31 -0
- data/vendor/libgit2/include/git2/sys/transport.h +2 -2
- data/vendor/libgit2/include/git2/tag.h +2 -11
- data/vendor/libgit2/include/git2/trace.h +2 -2
- data/vendor/libgit2/include/git2/transport.h +340 -11
- data/vendor/libgit2/include/git2/tree.h +1 -1
- data/vendor/libgit2/include/git2/types.h +89 -4
- data/vendor/libgit2/include/git2/version.h +2 -2
- data/vendor/libgit2/include/git2/worktree.h +5 -5
- data/vendor/libgit2/libgit2.pc.in +13 -0
- data/vendor/libgit2/src/CMakeLists.txt +222 -88
- data/vendor/libgit2/src/alloc.c +14 -2
- data/vendor/libgit2/src/apply.c +30 -60
- data/vendor/libgit2/src/attr.c +64 -70
- data/vendor/libgit2/src/attr_file.c +96 -189
- data/vendor/libgit2/src/attr_file.h +9 -9
- data/vendor/libgit2/src/attrcache.c +46 -44
- data/vendor/libgit2/src/attrcache.h +1 -2
- data/vendor/libgit2/src/blame.c +5 -17
- data/vendor/libgit2/src/blame.h +1 -1
- data/vendor/libgit2/src/blame_git.c +7 -21
- data/vendor/libgit2/src/blob.c +17 -81
- data/vendor/libgit2/src/blob.h +2 -2
- data/vendor/libgit2/src/branch.c +5 -29
- data/vendor/libgit2/src/buffer.c +7 -14
- data/vendor/libgit2/src/cache.c +33 -26
- data/vendor/libgit2/src/cache.h +1 -1
- data/vendor/libgit2/src/cc-compat.h +0 -5
- data/vendor/libgit2/src/checkout.c +16 -26
- data/vendor/libgit2/src/cherrypick.c +3 -9
- data/vendor/libgit2/src/clone.c +7 -29
- data/vendor/libgit2/src/clone.h +0 -4
- data/vendor/libgit2/src/commit.c +21 -69
- data/vendor/libgit2/src/commit.h +0 -6
- data/vendor/libgit2/src/commit_list.c +76 -28
- data/vendor/libgit2/src/commit_list.h +2 -2
- data/vendor/libgit2/src/common.h +75 -3
- data/vendor/libgit2/src/config.c +40 -31
- data/vendor/libgit2/src/config.h +6 -7
- data/vendor/libgit2/src/config_backend.h +0 -12
- data/vendor/libgit2/src/config_cache.c +39 -39
- data/vendor/libgit2/src/config_entries.c +99 -69
- data/vendor/libgit2/src/config_entries.h +0 -1
- data/vendor/libgit2/src/config_file.c +380 -337
- data/vendor/libgit2/src/config_mem.c +16 -12
- data/vendor/libgit2/src/config_parse.c +29 -49
- data/vendor/libgit2/src/config_parse.h +12 -13
- data/vendor/libgit2/src/crlf.c +14 -14
- data/vendor/libgit2/src/describe.c +20 -21
- data/vendor/libgit2/src/diff.c +58 -43
- data/vendor/libgit2/src/diff.h +1 -2
- data/vendor/libgit2/src/diff_driver.c +38 -37
- data/vendor/libgit2/src/diff_file.c +7 -9
- data/vendor/libgit2/src/diff_file.h +1 -1
- data/vendor/libgit2/src/diff_generate.c +85 -135
- 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 +13 -25
- data/vendor/libgit2/src/diff_stats.c +1 -1
- data/vendor/libgit2/src/diff_tform.c +4 -4
- data/vendor/libgit2/src/errors.c +22 -12
- data/vendor/libgit2/src/features.h.in +2 -9
- data/vendor/libgit2/src/fetch.c +2 -7
- data/vendor/libgit2/src/fetchhead.c +1 -1
- data/vendor/libgit2/src/filebuf.c +10 -6
- data/vendor/libgit2/src/filebuf.h +2 -2
- data/vendor/libgit2/src/{futils.c → fileops.c} +17 -21
- data/vendor/libgit2/src/{futils.h → fileops.h} +5 -5
- data/vendor/libgit2/src/filter.c +8 -16
- data/vendor/libgit2/src/fnmatch.c +248 -0
- data/vendor/libgit2/src/fnmatch.h +48 -0
- data/vendor/libgit2/src/global.c +40 -12
- data/vendor/libgit2/src/global.h +2 -0
- data/vendor/libgit2/src/hash.c +0 -61
- data/vendor/libgit2/src/hash.h +21 -19
- data/vendor/libgit2/src/hash/{sha1/collisiondetect.c → hash_collisiondetect.h} +17 -14
- data/vendor/libgit2/src/hash/{sha1/common_crypto.c → hash_common_crypto.h} +19 -15
- data/vendor/libgit2/src/hash/{sha1/generic.c → hash_generic.c} +10 -22
- data/vendor/libgit2/src/hash/{sha1/generic.h → hash_generic.h} +14 -4
- data/vendor/libgit2/src/hash/{sha1/mbedtls.c → hash_mbedtls.c} +7 -15
- data/vendor/libgit2/src/hash/{sha1/mbedtls.h → hash_mbedtls.h} +11 -6
- data/vendor/libgit2/src/hash/{sha1/openssl.c → hash_openssl.h} +18 -14
- data/vendor/libgit2/src/hash/{sha1/win32.c → hash_win32.c} +24 -34
- data/vendor/libgit2/src/hash/{sha1/win32.h → hash_win32.h} +19 -6
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.c +3 -14
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/sha1.h +0 -0
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.c +0 -0
- data/vendor/libgit2/src/hash/{sha1/sha1dc → sha1dc}/ubc_check.h +0 -0
- data/vendor/libgit2/src/hashsig.c +1 -1
- data/vendor/libgit2/src/idxmap.c +65 -91
- data/vendor/libgit2/src/idxmap.h +15 -151
- data/vendor/libgit2/src/ignore.c +38 -32
- data/vendor/libgit2/src/index.c +43 -66
- data/vendor/libgit2/src/index.h +1 -1
- data/vendor/libgit2/src/indexer.c +70 -69
- data/vendor/libgit2/src/integer.h +4 -39
- data/vendor/libgit2/src/iterator.c +22 -27
- data/vendor/libgit2/src/map.h +1 -1
- data/vendor/libgit2/src/merge.c +44 -58
- data/vendor/libgit2/src/merge_driver.c +4 -4
- data/vendor/libgit2/src/merge_file.c +1 -1
- data/vendor/libgit2/src/mwindow.c +23 -18
- data/vendor/libgit2/src/mwindow.h +4 -4
- data/vendor/libgit2/src/netops.c +165 -55
- data/vendor/libgit2/src/netops.h +25 -3
- data/vendor/libgit2/src/notes.c +2 -2
- data/vendor/libgit2/src/object.c +2 -2
- data/vendor/libgit2/src/object.h +0 -2
- data/vendor/libgit2/src/odb.c +23 -41
- data/vendor/libgit2/src/odb.h +2 -3
- data/vendor/libgit2/src/odb_loose.c +10 -17
- data/vendor/libgit2/src/odb_mempack.c +23 -10
- data/vendor/libgit2/src/odb_pack.c +4 -4
- data/vendor/libgit2/src/offmap.c +55 -43
- data/vendor/libgit2/src/offmap.h +24 -102
- data/vendor/libgit2/src/oid.c +1 -6
- data/vendor/libgit2/src/oidmap.c +57 -39
- data/vendor/libgit2/src/oidmap.h +19 -99
- data/vendor/libgit2/src/pack-objects.c +32 -25
- data/vendor/libgit2/src/pack-objects.h +1 -1
- data/vendor/libgit2/src/pack.c +47 -45
- data/vendor/libgit2/src/pack.h +14 -12
- data/vendor/libgit2/src/parse.c +0 -10
- 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 +31 -124
- data/vendor/libgit2/src/path.c +6 -43
- data/vendor/libgit2/src/path.h +0 -2
- data/vendor/libgit2/src/pathspec.c +13 -13
- data/vendor/libgit2/src/pool.c +22 -26
- data/vendor/libgit2/src/pool.h +7 -7
- data/vendor/libgit2/src/posix.c +7 -7
- data/vendor/libgit2/src/posix.h +1 -12
- data/vendor/libgit2/src/proxy.c +2 -7
- data/vendor/libgit2/src/push.c +5 -10
- data/vendor/libgit2/src/reader.c +2 -2
- data/vendor/libgit2/src/rebase.c +7 -66
- data/vendor/libgit2/src/refdb.c +0 -12
- data/vendor/libgit2/src/refdb_fs.c +165 -214
- data/vendor/libgit2/src/reflog.c +13 -11
- data/vendor/libgit2/src/refs.c +18 -24
- data/vendor/libgit2/src/refspec.c +16 -9
- data/vendor/libgit2/src/remote.c +52 -50
- data/vendor/libgit2/src/remote.h +2 -2
- data/vendor/libgit2/src/repository.c +100 -115
- data/vendor/libgit2/src/repository.h +40 -49
- data/vendor/libgit2/src/revert.c +3 -8
- data/vendor/libgit2/src/revparse.c +19 -18
- data/vendor/libgit2/src/revwalk.c +30 -63
- data/vendor/libgit2/src/revwalk.h +0 -20
- data/vendor/libgit2/src/settings.c +0 -5
- data/vendor/libgit2/src/sortedcache.c +26 -12
- data/vendor/libgit2/src/sortedcache.h +1 -1
- data/vendor/libgit2/src/stash.c +65 -45
- data/vendor/libgit2/src/status.c +9 -15
- data/vendor/libgit2/src/{allocators/stdalloc.c → stdalloc.c} +4 -3
- data/vendor/libgit2/src/{allocators/stdalloc.h → stdalloc.h} +4 -4
- data/vendor/libgit2/src/streams/openssl.c +0 -20
- data/vendor/libgit2/src/streams/socket.c +2 -2
- data/vendor/libgit2/src/strmap.c +84 -37
- data/vendor/libgit2/src/strmap.h +33 -105
- data/vendor/libgit2/src/submodule.c +70 -102
- data/vendor/libgit2/src/submodule.h +1 -1
- data/vendor/libgit2/src/sysdir.c +1 -11
- data/vendor/libgit2/src/tag.c +2 -10
- data/vendor/libgit2/src/trace.c +1 -1
- data/vendor/libgit2/src/trace.h +2 -2
- data/vendor/libgit2/src/trailer.c +32 -46
- data/vendor/libgit2/src/transaction.c +9 -10
- data/vendor/libgit2/src/transports/auth.c +9 -10
- data/vendor/libgit2/src/transports/auth.h +4 -11
- data/vendor/libgit2/src/transports/auth_negotiate.c +9 -23
- data/vendor/libgit2/src/transports/auth_negotiate.h +2 -2
- data/vendor/libgit2/src/transports/cred.c +6 -6
- data/vendor/libgit2/src/{allocators/win32_crtdbg.h → transports/cred.h} +4 -5
- data/vendor/libgit2/src/transports/git.c +16 -11
- data/vendor/libgit2/src/transports/http.c +276 -419
- data/vendor/libgit2/src/transports/http.h +1 -1
- data/vendor/libgit2/src/transports/local.c +9 -9
- data/vendor/libgit2/src/transports/smart.c +17 -17
- data/vendor/libgit2/src/transports/smart.h +2 -2
- data/vendor/libgit2/src/transports/smart_protocol.c +60 -36
- data/vendor/libgit2/src/transports/ssh.c +36 -46
- data/vendor/libgit2/src/transports/winhttp.c +207 -231
- data/vendor/libgit2/src/tree-cache.c +7 -14
- data/vendor/libgit2/src/tree.c +24 -10
- data/vendor/libgit2/src/unix/map.c +1 -1
- data/vendor/libgit2/src/unix/posix.h +11 -1
- data/vendor/libgit2/src/userdiff.h +1 -3
- data/vendor/libgit2/src/util.c +53 -51
- data/vendor/libgit2/src/util.h +21 -16
- data/vendor/libgit2/src/win32/map.c +5 -3
- data/vendor/libgit2/src/win32/path_w32.c +2 -12
- data/vendor/libgit2/src/win32/path_w32.h +29 -0
- data/vendor/libgit2/src/win32/posix.h +4 -1
- data/vendor/libgit2/src/win32/posix_w32.c +5 -40
- data/vendor/libgit2/src/win32/precompiled.h +2 -0
- data/vendor/libgit2/src/win32/thread.c +10 -5
- data/vendor/libgit2/src/win32/w32_buffer.c +3 -7
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.c +93 -0
- data/vendor/libgit2/src/win32/w32_crtdbg_stacktrace.h +2 -0
- data/vendor/libgit2/src/win32/w32_stack.c +9 -4
- data/vendor/libgit2/src/win32/w32_stack.h +3 -3
- data/vendor/libgit2/src/win32/w32_util.c +0 -31
- data/vendor/libgit2/src/win32/w32_util.h +32 -6
- data/vendor/libgit2/src/worktree.c +22 -36
- data/vendor/libgit2/src/xdiff/xdiffi.c +1 -1
- data/vendor/libgit2/src/xdiff/xmerge.c +0 -12
- data/vendor/libgit2/src/xdiff/xpatience.c +0 -3
- metadata +34 -98
- data/vendor/libgit2/cmake/Modules/FindGSSFramework.cmake +0 -28
- data/vendor/libgit2/cmake/Modules/FindPCRE.cmake +0 -38
- data/vendor/libgit2/cmake/Modules/FindPCRE2.cmake +0 -37
- data/vendor/libgit2/cmake/Modules/PkgBuildConfig.cmake +0 -110
- data/vendor/libgit2/cmake/Modules/SelectGSSAPI.cmake +0 -53
- data/vendor/libgit2/cmake/Modules/SelectHTTPSBackend.cmake +0 -124
- data/vendor/libgit2/cmake/Modules/SelectHashes.cmake +0 -66
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +0 -21
- data/vendor/libgit2/deps/ntlmclient/compat.h +0 -33
- data/vendor/libgit2/deps/ntlmclient/crypt.h +0 -64
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +0 -120
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.h +0 -18
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -145
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.h +0 -18
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +0 -130
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.h +0 -21
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +0 -1420
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +0 -174
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +0 -320
- data/vendor/libgit2/deps/ntlmclient/unicode.h +0 -36
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +0 -445
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +0 -201
- data/vendor/libgit2/deps/ntlmclient/utf8.h +0 -1257
- data/vendor/libgit2/deps/ntlmclient/util.c +0 -21
- data/vendor/libgit2/deps/ntlmclient/util.h +0 -14
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +0 -140
- data/vendor/libgit2/deps/pcre/COPYING +0 -5
- data/vendor/libgit2/deps/pcre/cmake/COPYING-CMAKE-SCRIPTS +0 -22
- data/vendor/libgit2/deps/pcre/cmake/FindEditline.cmake +0 -17
- data/vendor/libgit2/deps/pcre/cmake/FindPackageHandleStandardArgs.cmake +0 -58
- data/vendor/libgit2/deps/pcre/cmake/FindReadline.cmake +0 -29
- data/vendor/libgit2/deps/pcre/config.h.in +0 -57
- data/vendor/libgit2/deps/pcre/pcre.h +0 -641
- data/vendor/libgit2/deps/pcre/pcre_byte_order.c +0 -319
- data/vendor/libgit2/deps/pcre/pcre_chartables.c +0 -198
- data/vendor/libgit2/deps/pcre/pcre_compile.c +0 -9800
- data/vendor/libgit2/deps/pcre/pcre_config.c +0 -190
- data/vendor/libgit2/deps/pcre/pcre_dfa_exec.c +0 -3676
- data/vendor/libgit2/deps/pcre/pcre_exec.c +0 -7173
- data/vendor/libgit2/deps/pcre/pcre_fullinfo.c +0 -245
- data/vendor/libgit2/deps/pcre/pcre_get.c +0 -669
- data/vendor/libgit2/deps/pcre/pcre_globals.c +0 -86
- data/vendor/libgit2/deps/pcre/pcre_internal.h +0 -2787
- data/vendor/libgit2/deps/pcre/pcre_jit_compile.c +0 -11913
- data/vendor/libgit2/deps/pcre/pcre_maketables.c +0 -156
- data/vendor/libgit2/deps/pcre/pcre_newline.c +0 -210
- data/vendor/libgit2/deps/pcre/pcre_ord2utf8.c +0 -94
- data/vendor/libgit2/deps/pcre/pcre_printint.c +0 -834
- data/vendor/libgit2/deps/pcre/pcre_refcount.c +0 -92
- data/vendor/libgit2/deps/pcre/pcre_string_utils.c +0 -211
- data/vendor/libgit2/deps/pcre/pcre_study.c +0 -1686
- data/vendor/libgit2/deps/pcre/pcre_tables.c +0 -727
- data/vendor/libgit2/deps/pcre/pcre_ucd.c +0 -3644
- data/vendor/libgit2/deps/pcre/pcre_valid_utf8.c +0 -301
- data/vendor/libgit2/deps/pcre/pcre_version.c +0 -98
- data/vendor/libgit2/deps/pcre/pcre_xclass.c +0 -268
- data/vendor/libgit2/deps/pcre/pcreposix.c +0 -421
- data/vendor/libgit2/deps/pcre/pcreposix.h +0 -117
- data/vendor/libgit2/deps/pcre/ucp.h +0 -224
- data/vendor/libgit2/include/git2/cert.h +0 -135
- data/vendor/libgit2/include/git2/cred.h +0 -308
- data/vendor/libgit2/include/git2/sys/cred.h +0 -90
- data/vendor/libgit2/src/allocators/win32_crtdbg.c +0 -118
- data/vendor/libgit2/src/config_snapshot.c +0 -206
- data/vendor/libgit2/src/errors.h +0 -81
- data/vendor/libgit2/src/hash/sha1.h +0 -38
- data/vendor/libgit2/src/hash/sha1/collisiondetect.h +0 -19
- data/vendor/libgit2/src/hash/sha1/common_crypto.h +0 -19
- data/vendor/libgit2/src/hash/sha1/openssl.h +0 -19
- data/vendor/libgit2/src/net.c +0 -184
- data/vendor/libgit2/src/net.h +0 -36
- data/vendor/libgit2/src/regexp.c +0 -221
- data/vendor/libgit2/src/regexp.h +0 -97
- data/vendor/libgit2/src/transports/auth_ntlm.c +0 -223
- data/vendor/libgit2/src/transports/auth_ntlm.h +0 -35
- data/vendor/libgit2/src/wildmatch.c +0 -320
- data/vendor/libgit2/src/wildmatch.h +0 -23
- data/vendor/libgit2/src/win32/w32_common.h +0 -39
|
@@ -38,7 +38,7 @@ struct tree_walk_context {
|
|
|
38
38
|
|
|
39
39
|
struct pack_write_context {
|
|
40
40
|
git_indexer *indexer;
|
|
41
|
-
|
|
41
|
+
git_transfer_progress *stats;
|
|
42
42
|
};
|
|
43
43
|
|
|
44
44
|
struct walk_object {
|
|
@@ -141,10 +141,12 @@ 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
|
-
|
|
144
|
+
pb->object_ix = git_oidmap_alloc();
|
|
145
|
+
if (!pb->object_ix)
|
|
145
146
|
goto on_error;
|
|
146
147
|
|
|
147
|
-
|
|
148
|
+
pb->walk_objects = git_oidmap_alloc();
|
|
149
|
+
if (!pb->walk_objects)
|
|
148
150
|
goto on_error;
|
|
149
151
|
|
|
150
152
|
git_pool_init(&pb->object_pool, sizeof(struct walk_object));
|
|
@@ -192,26 +194,24 @@ unsigned int git_packbuilder_set_threads(git_packbuilder *pb, unsigned int n)
|
|
|
192
194
|
return pb->nr_threads;
|
|
193
195
|
}
|
|
194
196
|
|
|
195
|
-
static
|
|
197
|
+
static void rehash(git_packbuilder *pb)
|
|
196
198
|
{
|
|
197
199
|
git_pobject *po;
|
|
198
|
-
size_t i;
|
|
200
|
+
size_t pos, i;
|
|
201
|
+
int ret;
|
|
199
202
|
|
|
200
203
|
git_oidmap_clear(pb->object_ix);
|
|
201
|
-
|
|
202
204
|
for (i = 0, po = pb->object_list; i < pb->nr_objects; i++, po++) {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
+
pos = git_oidmap_put(pb->object_ix, &po->id, &ret);
|
|
206
|
+
git_oidmap_set_value_at(pb->object_ix, pos, po);
|
|
205
207
|
}
|
|
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, pos;
|
|
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 / 2
|
|
226
|
+
GIT_ERROR_CHECK_ALLOC_MULTIPLY(&newsize, newsize, 3 / 2);
|
|
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,9 +235,7 @@ 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
|
-
|
|
239
|
-
if (rehash(pb) < 0)
|
|
240
|
-
return -1;
|
|
238
|
+
rehash(pb);
|
|
241
239
|
}
|
|
242
240
|
|
|
243
241
|
po = pb->object_list + pb->nr_objects;
|
|
@@ -250,10 +248,13 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
|
250
248
|
git_oid_cpy(&po->id, oid);
|
|
251
249
|
po->hash = name_hash(name);
|
|
252
250
|
|
|
253
|
-
|
|
251
|
+
pos = git_oidmap_put(pb->object_ix, &po->id, &ret);
|
|
252
|
+
if (ret < 0) {
|
|
254
253
|
git_error_set_oom();
|
|
255
|
-
return
|
|
254
|
+
return ret;
|
|
256
255
|
}
|
|
256
|
+
assert(ret != 0);
|
|
257
|
+
git_oidmap_set_value_at(pb->object_ix, pos, po);
|
|
257
258
|
|
|
258
259
|
pb->done = false;
|
|
259
260
|
|
|
@@ -513,12 +514,15 @@ static int cb_tag_foreach(const char *name, git_oid *oid, void *data)
|
|
|
513
514
|
{
|
|
514
515
|
git_packbuilder *pb = data;
|
|
515
516
|
git_pobject *po;
|
|
517
|
+
size_t pos;
|
|
516
518
|
|
|
517
519
|
GIT_UNUSED(name);
|
|
518
520
|
|
|
519
|
-
|
|
521
|
+
pos = git_oidmap_lookup_index(pb->object_ix, oid);
|
|
522
|
+
if (!git_oidmap_valid_index(pb->object_ix, pos))
|
|
520
523
|
return 0;
|
|
521
524
|
|
|
525
|
+
po = git_oidmap_value_at(pb->object_ix, pos);
|
|
522
526
|
po->tagged = 1;
|
|
523
527
|
|
|
524
528
|
/* TODO: peel objects */
|
|
@@ -1379,12 +1383,12 @@ int git_packbuilder_write(
|
|
|
1379
1383
|
git_packbuilder *pb,
|
|
1380
1384
|
const char *path,
|
|
1381
1385
|
unsigned int mode,
|
|
1382
|
-
|
|
1386
|
+
git_transfer_progress_cb progress_cb,
|
|
1383
1387
|
void *progress_cb_payload)
|
|
1384
1388
|
{
|
|
1385
1389
|
git_indexer_options opts = GIT_INDEXER_OPTIONS_INIT;
|
|
1386
1390
|
git_indexer *indexer;
|
|
1387
|
-
|
|
1391
|
+
git_transfer_progress stats;
|
|
1388
1392
|
struct pack_write_context ctx;
|
|
1389
1393
|
int t;
|
|
1390
1394
|
|
|
@@ -1397,7 +1401,7 @@ int git_packbuilder_write(
|
|
|
1397
1401
|
&indexer, path, mode, pb->odb, &opts) < 0)
|
|
1398
1402
|
return -1;
|
|
1399
1403
|
|
|
1400
|
-
if (!
|
|
1404
|
+
if (!git_repository__cvar(&t, pb->repo, GIT_CVAR_FSYNCOBJECTFILES) && t)
|
|
1401
1405
|
git_indexer__set_fsync(indexer, 1);
|
|
1402
1406
|
|
|
1403
1407
|
ctx.indexer = indexer;
|
|
@@ -1535,15 +1539,18 @@ static int lookup_walk_object(struct walk_object **out, git_packbuilder *pb, con
|
|
|
1535
1539
|
|
|
1536
1540
|
static int retrieve_object(struct walk_object **out, git_packbuilder *pb, const git_oid *id)
|
|
1537
1541
|
{
|
|
1538
|
-
struct walk_object *obj;
|
|
1539
1542
|
int error;
|
|
1543
|
+
size_t pos;
|
|
1544
|
+
struct walk_object *obj;
|
|
1540
1545
|
|
|
1541
|
-
|
|
1546
|
+
pos = git_oidmap_lookup_index(pb->walk_objects, id);
|
|
1547
|
+
if (git_oidmap_valid_index(pb->walk_objects, pos)) {
|
|
1548
|
+
obj = git_oidmap_value_at(pb->walk_objects, pos);
|
|
1549
|
+
} else {
|
|
1542
1550
|
if ((error = lookup_walk_object(&obj, pb, id)) < 0)
|
|
1543
1551
|
return error;
|
|
1544
1552
|
|
|
1545
|
-
|
|
1546
|
-
return error;
|
|
1553
|
+
git_oidmap_insert(pb->walk_objects, &obj->id, obj, &error);
|
|
1547
1554
|
}
|
|
1548
1555
|
|
|
1549
1556
|
*out = obj;
|
data/vendor/libgit2/src/pack.c
CHANGED
|
@@ -11,21 +11,18 @@
|
|
|
11
11
|
#include "delta.h"
|
|
12
12
|
#include "sha1_lookup.h"
|
|
13
13
|
#include "mwindow.h"
|
|
14
|
-
#include "
|
|
14
|
+
#include "fileops.h"
|
|
15
15
|
#include "oid.h"
|
|
16
16
|
|
|
17
17
|
#include <zlib.h>
|
|
18
18
|
|
|
19
|
-
/* Option to bypass checking existence of '.keep' files */
|
|
20
|
-
bool git_disable_pack_keep_file_checks = false;
|
|
21
|
-
|
|
22
19
|
static int packfile_open(struct git_pack_file *p);
|
|
23
|
-
static
|
|
20
|
+
static git_off_t nth_packed_object_offset(const struct git_pack_file *p, uint32_t n);
|
|
24
21
|
static int packfile_unpack_compressed(
|
|
25
22
|
git_rawobj *obj,
|
|
26
23
|
struct git_pack_file *p,
|
|
27
24
|
git_mwindow **w_curs,
|
|
28
|
-
|
|
25
|
+
git_off_t *curpos,
|
|
29
26
|
size_t size,
|
|
30
27
|
git_object_t type);
|
|
31
28
|
|
|
@@ -37,7 +34,7 @@ static int packfile_unpack_compressed(
|
|
|
37
34
|
* GIT_OID_MINPREFIXLEN and GIT_OID_HEXSZ.
|
|
38
35
|
*/
|
|
39
36
|
static int pack_entry_find_offset(
|
|
40
|
-
|
|
37
|
+
git_off_t *offset_out,
|
|
41
38
|
git_oid *found_oid,
|
|
42
39
|
struct git_pack_file *p,
|
|
43
40
|
const git_oid *short_oid,
|
|
@@ -92,8 +89,8 @@ static void cache_free(git_pack_cache *cache)
|
|
|
92
89
|
|
|
93
90
|
static int cache_init(git_pack_cache *cache)
|
|
94
91
|
{
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
cache->entries = git_offmap_alloc();
|
|
93
|
+
GIT_ERROR_CHECK_ALLOC(cache->entries);
|
|
97
94
|
|
|
98
95
|
cache->memory_limit = GIT_PACK_CACHE_MEMORY_LIMIT;
|
|
99
96
|
|
|
@@ -109,14 +106,17 @@ static int cache_init(git_pack_cache *cache)
|
|
|
109
106
|
return 0;
|
|
110
107
|
}
|
|
111
108
|
|
|
112
|
-
static git_pack_cache_entry *cache_get(git_pack_cache *cache,
|
|
109
|
+
static git_pack_cache_entry *cache_get(git_pack_cache *cache, git_off_t offset)
|
|
113
110
|
{
|
|
114
|
-
git_pack_cache_entry *entry;
|
|
111
|
+
git_pack_cache_entry *entry = NULL;
|
|
112
|
+
size_t k;
|
|
115
113
|
|
|
116
114
|
if (git_mutex_lock(&cache->lock) < 0)
|
|
117
115
|
return NULL;
|
|
118
116
|
|
|
119
|
-
|
|
117
|
+
k = git_offmap_lookup_index(cache->entries, offset);
|
|
118
|
+
if (git_offmap_valid_index(cache->entries, k)) { /* found it */
|
|
119
|
+
entry = git_offmap_value_at(cache->entries, k);
|
|
120
120
|
git_atomic_inc(&entry->refcount);
|
|
121
121
|
entry->last_usage = cache->use_ctr++;
|
|
122
122
|
}
|
|
@@ -128,7 +128,7 @@ static git_pack_cache_entry *cache_get(git_pack_cache *cache, off64_t offset)
|
|
|
128
128
|
/* Run with the cache lock held */
|
|
129
129
|
static void free_lowest_entry(git_pack_cache *cache)
|
|
130
130
|
{
|
|
131
|
-
|
|
131
|
+
git_off_t offset;
|
|
132
132
|
git_pack_cache_entry *entry;
|
|
133
133
|
|
|
134
134
|
git_offmap_foreach(cache->entries, offset, entry, {
|
|
@@ -144,10 +144,11 @@ static int cache_add(
|
|
|
144
144
|
git_pack_cache_entry **cached_out,
|
|
145
145
|
git_pack_cache *cache,
|
|
146
146
|
git_rawobj *base,
|
|
147
|
-
|
|
147
|
+
git_off_t offset)
|
|
148
148
|
{
|
|
149
149
|
git_pack_cache_entry *entry;
|
|
150
|
-
int exists;
|
|
150
|
+
int error, exists = 0;
|
|
151
|
+
size_t k;
|
|
151
152
|
|
|
152
153
|
if (base->len > GIT_PACK_CACHE_SIZE_LIMIT)
|
|
153
154
|
return -1;
|
|
@@ -165,7 +166,9 @@ static int cache_add(
|
|
|
165
166
|
while (cache->memory_used + base->len > cache->memory_limit)
|
|
166
167
|
free_lowest_entry(cache);
|
|
167
168
|
|
|
168
|
-
|
|
169
|
+
k = git_offmap_put(cache->entries, offset, &error);
|
|
170
|
+
assert(error != 0);
|
|
171
|
+
git_offmap_set_value_at(cache->entries, k, entry);
|
|
169
172
|
cache->memory_used += entry->raw.len;
|
|
170
173
|
|
|
171
174
|
*cached_out = entry;
|
|
@@ -345,7 +348,7 @@ static int pack_index_open(struct git_pack_file *p)
|
|
|
345
348
|
static unsigned char *pack_window_open(
|
|
346
349
|
struct git_pack_file *p,
|
|
347
350
|
git_mwindow **w_cursor,
|
|
348
|
-
|
|
351
|
+
git_off_t offset,
|
|
349
352
|
unsigned int *left)
|
|
350
353
|
{
|
|
351
354
|
if (p->mwf.fd == -1 && packfile_open(p) < 0)
|
|
@@ -441,7 +444,7 @@ int git_packfile_unpack_header(
|
|
|
441
444
|
git_object_t *type_p,
|
|
442
445
|
git_mwindow_file *mwf,
|
|
443
446
|
git_mwindow **w_curs,
|
|
444
|
-
|
|
447
|
+
git_off_t *curpos)
|
|
445
448
|
{
|
|
446
449
|
unsigned char *base;
|
|
447
450
|
unsigned int left;
|
|
@@ -474,13 +477,13 @@ int git_packfile_resolve_header(
|
|
|
474
477
|
size_t *size_p,
|
|
475
478
|
git_object_t *type_p,
|
|
476
479
|
struct git_pack_file *p,
|
|
477
|
-
|
|
480
|
+
git_off_t offset)
|
|
478
481
|
{
|
|
479
482
|
git_mwindow *w_curs = NULL;
|
|
480
|
-
|
|
483
|
+
git_off_t curpos = offset;
|
|
481
484
|
size_t size;
|
|
482
485
|
git_object_t type;
|
|
483
|
-
|
|
486
|
+
git_off_t base_offset;
|
|
484
487
|
int error;
|
|
485
488
|
|
|
486
489
|
error = git_packfile_unpack_header(&size, &type, &p->mwf, &w_curs, &curpos);
|
|
@@ -528,13 +531,13 @@ int git_packfile_resolve_header(
|
|
|
528
531
|
* cache, we stop calculating there.
|
|
529
532
|
*/
|
|
530
533
|
static int pack_dependency_chain(git_dependency_chain *chain_out,
|
|
531
|
-
git_pack_cache_entry **cached_out,
|
|
534
|
+
git_pack_cache_entry **cached_out, git_off_t *cached_off,
|
|
532
535
|
struct pack_chain_elem *small_stack, size_t *stack_sz,
|
|
533
|
-
struct git_pack_file *p,
|
|
536
|
+
struct git_pack_file *p, git_off_t obj_offset)
|
|
534
537
|
{
|
|
535
538
|
git_dependency_chain chain = GIT_ARRAY_INIT;
|
|
536
539
|
git_mwindow *w_curs = NULL;
|
|
537
|
-
|
|
540
|
+
git_off_t curpos = obj_offset, base_offset;
|
|
538
541
|
int error = 0, use_heap = 0;
|
|
539
542
|
size_t size, elem_pos;
|
|
540
543
|
git_object_t type;
|
|
@@ -619,10 +622,10 @@ on_error:
|
|
|
619
622
|
int git_packfile_unpack(
|
|
620
623
|
git_rawobj *obj,
|
|
621
624
|
struct git_pack_file *p,
|
|
622
|
-
|
|
625
|
+
git_off_t *obj_offset)
|
|
623
626
|
{
|
|
624
627
|
git_mwindow *w_curs = NULL;
|
|
625
|
-
|
|
628
|
+
git_off_t curpos = *obj_offset;
|
|
626
629
|
int error, free_base = 0;
|
|
627
630
|
git_dependency_chain chain = GIT_ARRAY_INIT;
|
|
628
631
|
struct pack_chain_elem *elem = NULL, *stack;
|
|
@@ -777,7 +780,7 @@ static void use_git_free(void *opaq, void *ptr)
|
|
|
777
780
|
git__free(ptr);
|
|
778
781
|
}
|
|
779
782
|
|
|
780
|
-
int git_packfile_stream_open(git_packfile_stream *obj, struct git_pack_file *p,
|
|
783
|
+
int git_packfile_stream_open(git_packfile_stream *obj, struct git_pack_file *p, git_off_t curpos)
|
|
781
784
|
{
|
|
782
785
|
int st;
|
|
783
786
|
|
|
@@ -846,7 +849,7 @@ static int packfile_unpack_compressed(
|
|
|
846
849
|
git_rawobj *obj,
|
|
847
850
|
struct git_pack_file *p,
|
|
848
851
|
git_mwindow **w_curs,
|
|
849
|
-
|
|
852
|
+
git_off_t *curpos,
|
|
850
853
|
size_t size,
|
|
851
854
|
git_object_t type)
|
|
852
855
|
{
|
|
@@ -909,16 +912,16 @@ static int packfile_unpack_compressed(
|
|
|
909
912
|
* curpos is where the data starts, delta_obj_offset is the where the
|
|
910
913
|
* header starts
|
|
911
914
|
*/
|
|
912
|
-
|
|
915
|
+
git_off_t get_delta_base(
|
|
913
916
|
struct git_pack_file *p,
|
|
914
917
|
git_mwindow **w_curs,
|
|
915
|
-
|
|
918
|
+
git_off_t *curpos,
|
|
916
919
|
git_object_t type,
|
|
917
|
-
|
|
920
|
+
git_off_t delta_obj_offset)
|
|
918
921
|
{
|
|
919
922
|
unsigned int left = 0;
|
|
920
923
|
unsigned char *base_info;
|
|
921
|
-
|
|
924
|
+
git_off_t base_offset;
|
|
922
925
|
git_oid unused;
|
|
923
926
|
|
|
924
927
|
base_info = pack_window_open(p, w_curs, *curpos, &left);
|
|
@@ -951,13 +954,14 @@ off64_t get_delta_base(
|
|
|
951
954
|
} else if (type == GIT_OBJECT_REF_DELTA) {
|
|
952
955
|
/* If we have the cooperative cache, search in it first */
|
|
953
956
|
if (p->has_cache) {
|
|
954
|
-
struct git_pack_entry *entry;
|
|
955
957
|
git_oid oid;
|
|
958
|
+
size_t k;
|
|
956
959
|
|
|
957
960
|
git_oid_fromraw(&oid, base_info);
|
|
958
|
-
|
|
961
|
+
k = git_oidmap_lookup_index(p->idx_cache, &oid);
|
|
962
|
+
if (git_oidmap_valid_index(p->idx_cache, k)) {
|
|
959
963
|
*curpos += 20;
|
|
960
|
-
return
|
|
964
|
+
return ((struct git_pack_entry *)git_oidmap_value_at(p->idx_cache, k))->offset;
|
|
961
965
|
} else {
|
|
962
966
|
/* If we're building an index, don't try to find the pack
|
|
963
967
|
* entry; we just haven't seen it yet. We'll make
|
|
@@ -1045,7 +1049,7 @@ static int packfile_open(struct git_pack_file *p)
|
|
|
1045
1049
|
if (!p->mwf.size) {
|
|
1046
1050
|
if (!S_ISREG(st.st_mode))
|
|
1047
1051
|
goto cleanup;
|
|
1048
|
-
p->mwf.size = (
|
|
1052
|
+
p->mwf.size = (git_off_t)st.st_size;
|
|
1049
1053
|
} else if (p->mwf.size != st.st_size)
|
|
1050
1054
|
goto cleanup;
|
|
1051
1055
|
|
|
@@ -1137,11 +1141,9 @@ int git_packfile_alloc(struct git_pack_file **pack_out, const char *path)
|
|
|
1137
1141
|
if (git__suffixcmp(path, ".idx") == 0) {
|
|
1138
1142
|
size_t root_len = path_len - strlen(".idx");
|
|
1139
1143
|
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
p->pack_keep = 1;
|
|
1144
|
-
}
|
|
1144
|
+
memcpy(p->pack_name + root_len, ".keep", sizeof(".keep"));
|
|
1145
|
+
if (git_path_exists(p->pack_name) == true)
|
|
1146
|
+
p->pack_keep = 1;
|
|
1145
1147
|
|
|
1146
1148
|
memcpy(p->pack_name + root_len, ".pack", sizeof(".pack"));
|
|
1147
1149
|
}
|
|
@@ -1182,7 +1184,7 @@ int git_packfile_alloc(struct git_pack_file **pack_out, const char *path)
|
|
|
1182
1184
|
*
|
|
1183
1185
|
***********************************************************/
|
|
1184
1186
|
|
|
1185
|
-
static
|
|
1187
|
+
static git_off_t nth_packed_object_offset(const struct git_pack_file *p, uint32_t n)
|
|
1186
1188
|
{
|
|
1187
1189
|
const unsigned char *index = p->index_map.data;
|
|
1188
1190
|
const unsigned char *end = index + p->index_map.len;
|
|
@@ -1270,7 +1272,7 @@ int git_pack_foreach_entry(
|
|
|
1270
1272
|
}
|
|
1271
1273
|
|
|
1272
1274
|
static int pack_entry_find_offset(
|
|
1273
|
-
|
|
1275
|
+
git_off_t *offset_out,
|
|
1274
1276
|
git_oid *found_oid,
|
|
1275
1277
|
struct git_pack_file *p,
|
|
1276
1278
|
const git_oid *short_oid,
|
|
@@ -1280,7 +1282,7 @@ static int pack_entry_find_offset(
|
|
|
1280
1282
|
const unsigned char *index;
|
|
1281
1283
|
unsigned hi, lo, stride;
|
|
1282
1284
|
int pos, found = 0;
|
|
1283
|
-
|
|
1285
|
+
git_off_t offset;
|
|
1284
1286
|
const unsigned char *current = 0;
|
|
1285
1287
|
|
|
1286
1288
|
*offset_out = 0;
|
|
@@ -1375,7 +1377,7 @@ int git_pack_entry_find(
|
|
|
1375
1377
|
const git_oid *short_oid,
|
|
1376
1378
|
size_t len)
|
|
1377
1379
|
{
|
|
1378
|
-
|
|
1380
|
+
git_off_t offset;
|
|
1379
1381
|
git_oid found_oid;
|
|
1380
1382
|
int error;
|
|
1381
1383
|
|
data/vendor/libgit2/src/pack.h
CHANGED
|
@@ -17,7 +17,6 @@
|
|
|
17
17
|
#include "map.h"
|
|
18
18
|
#include "mwindow.h"
|
|
19
19
|
#include "odb.h"
|
|
20
|
-
#include "offmap.h"
|
|
21
20
|
#include "oidmap.h"
|
|
22
21
|
#include "array.h"
|
|
23
22
|
|
|
@@ -64,14 +63,17 @@ typedef struct git_pack_cache_entry {
|
|
|
64
63
|
} git_pack_cache_entry;
|
|
65
64
|
|
|
66
65
|
struct pack_chain_elem {
|
|
67
|
-
|
|
68
|
-
|
|
66
|
+
git_off_t base_key;
|
|
67
|
+
git_off_t offset;
|
|
69
68
|
size_t size;
|
|
70
69
|
git_object_t type;
|
|
71
70
|
};
|
|
72
71
|
|
|
73
72
|
typedef git_array_t(struct pack_chain_elem) git_dependency_chain;
|
|
74
73
|
|
|
74
|
+
#include "offmap.h"
|
|
75
|
+
#include "oidmap.h"
|
|
76
|
+
|
|
75
77
|
#define GIT_PACK_CACHE_MEMORY_LIMIT 16 * 1024 * 1024
|
|
76
78
|
#define GIT_PACK_CACHE_SIZE_LIMIT 1024 * 1024 /* don't bother caching anything over 1MB */
|
|
77
79
|
|
|
@@ -108,13 +110,13 @@ struct git_pack_file {
|
|
|
108
110
|
};
|
|
109
111
|
|
|
110
112
|
struct git_pack_entry {
|
|
111
|
-
|
|
113
|
+
git_off_t offset;
|
|
112
114
|
git_oid sha1;
|
|
113
115
|
struct git_pack_file *p;
|
|
114
116
|
};
|
|
115
117
|
|
|
116
118
|
typedef struct git_packfile_stream {
|
|
117
|
-
|
|
119
|
+
git_off_t curpos;
|
|
118
120
|
int done;
|
|
119
121
|
z_stream zstream;
|
|
120
122
|
struct git_pack_file *p;
|
|
@@ -130,23 +132,23 @@ int git_packfile_unpack_header(
|
|
|
130
132
|
git_object_t *type_p,
|
|
131
133
|
git_mwindow_file *mwf,
|
|
132
134
|
git_mwindow **w_curs,
|
|
133
|
-
|
|
135
|
+
git_off_t *curpos);
|
|
134
136
|
|
|
135
137
|
int git_packfile_resolve_header(
|
|
136
138
|
size_t *size_p,
|
|
137
139
|
git_object_t *type_p,
|
|
138
140
|
struct git_pack_file *p,
|
|
139
|
-
|
|
141
|
+
git_off_t offset);
|
|
140
142
|
|
|
141
|
-
int git_packfile_unpack(git_rawobj *obj, struct git_pack_file *p,
|
|
143
|
+
int git_packfile_unpack(git_rawobj *obj, struct git_pack_file *p, git_off_t *obj_offset);
|
|
142
144
|
|
|
143
|
-
int git_packfile_stream_open(git_packfile_stream *obj, struct git_pack_file *p,
|
|
145
|
+
int git_packfile_stream_open(git_packfile_stream *obj, struct git_pack_file *p, git_off_t curpos);
|
|
144
146
|
ssize_t git_packfile_stream_read(git_packfile_stream *obj, void *buffer, size_t len);
|
|
145
147
|
void git_packfile_stream_dispose(git_packfile_stream *obj);
|
|
146
148
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
149
|
+
git_off_t get_delta_base(struct git_pack_file *p, git_mwindow **w_curs,
|
|
150
|
+
git_off_t *curpos, git_object_t type,
|
|
151
|
+
git_off_t delta_obj_offset);
|
|
150
152
|
|
|
151
153
|
void git_packfile_close(struct git_pack_file *p, bool unlink_packfile);
|
|
152
154
|
void git_packfile_free(struct git_pack_file *p);
|