rugged 1.3.1 → 1.9.0
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 +34 -2
- data/ext/rugged/extconf.rb +6 -3
- data/ext/rugged/rugged.c +16 -0
- data/ext/rugged/rugged.h +4 -0
- data/ext/rugged/rugged_allocator.c +0 -54
- data/ext/rugged/rugged_blame.c +2 -0
- data/ext/rugged/rugged_blob.c +3 -0
- data/ext/rugged/rugged_commit.c +1 -0
- data/ext/rugged/rugged_config.c +9 -2
- data/ext/rugged/rugged_diff.c +1 -0
- data/ext/rugged/rugged_index.c +2 -0
- data/ext/rugged/rugged_patch.c +1 -0
- data/ext/rugged/rugged_rebase.c +1 -0
- data/ext/rugged/rugged_reference.c +1 -0
- data/ext/rugged/rugged_remote.c +28 -10
- data/ext/rugged/rugged_repo.c +7 -9
- data/ext/rugged/rugged_revwalk.c +5 -1
- data/ext/rugged/rugged_settings.c +5 -0
- data/ext/rugged/rugged_submodule.c +1 -0
- data/ext/rugged/rugged_tag.c +1 -0
- data/ext/rugged/rugged_tree.c +4 -0
- data/lib/rugged/index.rb +1 -1
- data/lib/rugged/tree.rb +5 -1
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +141 -289
- data/vendor/libgit2/COPYING +301 -20
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
- data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
- data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
- data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
- data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
- data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
- data/vendor/libgit2/cmake/FindHTTP_Parser.cmake +17 -17
- data/vendor/libgit2/cmake/FindIntlIconv.cmake +51 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
- data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
- data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
- data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
- data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
- data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
- data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
- data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
- data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
- data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
- data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +34 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +129 -101
- data/vendor/libgit2/cmake/SelectHashes.cmake +113 -54
- data/vendor/libgit2/cmake/SelectRegex.cmake +56 -0
- data/vendor/libgit2/cmake/SelectSSH.cmake +46 -0
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +38 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +7 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +25 -25
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +89 -88
- data/vendor/libgit2/deps/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/deps/xdiff/git-xdiff.h +56 -0
- data/vendor/libgit2/{src → deps}/xdiff/xdiff.h +15 -15
- data/vendor/libgit2/{src → deps}/xdiff/xdiffi.c +152 -125
- data/vendor/libgit2/{src → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src → deps}/xdiff/xemit.c +26 -10
- data/vendor/libgit2/{src → deps}/xdiff/xhistogram.c +92 -94
- data/vendor/libgit2/{src → deps}/xdiff/xinclude.h +1 -12
- data/vendor/libgit2/{src → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src → deps}/xdiff/xmerge.c +126 -137
- data/vendor/libgit2/{src → deps}/xdiff/xpatience.c +26 -46
- data/vendor/libgit2/{src → deps}/xdiff/xprepare.c +24 -46
- data/vendor/libgit2/{src → deps}/xdiff/xutils.c +36 -8
- data/vendor/libgit2/{src → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +7 -22
- data/vendor/libgit2/deps/zlib/crc32.c +931 -317
- data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
- data/vendor/libgit2/deps/zlib/deflate.c +428 -453
- data/vendor/libgit2/deps/zlib/deflate.h +51 -23
- data/vendor/libgit2/deps/zlib/gzguts.h +15 -19
- data/vendor/libgit2/deps/zlib/infback.c +19 -31
- data/vendor/libgit2/deps/zlib/inffast.c +15 -18
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +75 -110
- data/vendor/libgit2/deps/zlib/inflate.h +3 -2
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +294 -380
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +310 -284
- data/vendor/libgit2/deps/zlib/zutil.c +20 -46
- data/vendor/libgit2/deps/zlib/zutil.h +24 -41
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +43 -8
- data/vendor/libgit2/include/git2/attr.h +28 -6
- data/vendor/libgit2/include/git2/blame.h +137 -29
- data/vendor/libgit2/include/git2/blob.h +85 -29
- data/vendor/libgit2/include/git2/branch.h +25 -16
- data/vendor/libgit2/include/git2/buffer.h +24 -82
- data/vendor/libgit2/include/git2/cert.h +4 -3
- data/vendor/libgit2/include/git2/checkout.h +88 -34
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +134 -3
- data/vendor/libgit2/include/git2/common.h +172 -59
- data/vendor/libgit2/include/git2/config.h +118 -32
- data/vendor/libgit2/include/git2/credential.h +32 -3
- data/vendor/libgit2/include/git2/credential_helpers.h +2 -0
- data/vendor/libgit2/include/git2/deprecated.h +141 -3
- data/vendor/libgit2/include/git2/describe.h +20 -3
- data/vendor/libgit2/include/git2/diff.h +95 -19
- data/vendor/libgit2/include/git2/email.h +10 -30
- data/vendor/libgit2/include/git2/errors.h +51 -61
- data/vendor/libgit2/include/git2/experimental.h +20 -0
- data/vendor/libgit2/include/git2/filter.h +21 -9
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +4 -2
- data/vendor/libgit2/include/git2/ignore.h +11 -1
- data/vendor/libgit2/include/git2/index.h +111 -11
- data/vendor/libgit2/include/git2/indexer.h +67 -2
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +70 -5
- data/vendor/libgit2/include/git2/message.h +4 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +57 -7
- data/vendor/libgit2/include/git2/odb.h +156 -33
- data/vendor/libgit2/include/git2/odb_backend.h +132 -16
- data/vendor/libgit2/include/git2/oid.h +116 -17
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +37 -9
- data/vendor/libgit2/include/git2/patch.h +10 -3
- data/vendor/libgit2/include/git2/pathspec.h +10 -1
- data/vendor/libgit2/include/git2/proxy.h +11 -1
- data/vendor/libgit2/include/git2/rebase.h +18 -7
- data/vendor/libgit2/include/git2/refdb.h +5 -2
- data/vendor/libgit2/include/git2/reflog.h +4 -3
- data/vendor/libgit2/include/git2/refs.h +11 -8
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +295 -54
- data/vendor/libgit2/include/git2/repository.h +95 -25
- data/vendor/libgit2/include/git2/reset.h +18 -5
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +4 -4
- data/vendor/libgit2/include/git2/revwalk.h +7 -3
- data/vendor/libgit2/include/git2/signature.h +47 -2
- data/vendor/libgit2/include/git2/stash.h +78 -10
- data/vendor/libgit2/include/git2/status.h +24 -11
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -16
- data/vendor/libgit2/include/git2/submodule.h +27 -11
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +110 -59
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +47 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +53 -0
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +26 -3
- data/vendor/libgit2/include/git2/sys/transport.h +87 -41
- data/vendor/libgit2/include/git2/tag.h +4 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +20 -8
- data/vendor/libgit2/include/git2/types.h +26 -10
- data/vendor/libgit2/include/git2/version.h +63 -6
- data/vendor/libgit2/include/git2/worktree.h +30 -8
- data/vendor/libgit2/include/git2.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +203 -420
- data/vendor/libgit2/src/README.md +12 -0
- data/vendor/libgit2/src/cli/CMakeLists.txt +56 -0
- data/vendor/libgit2/src/cli/README.md +26 -0
- data/vendor/libgit2/src/{branch.h → cli/cmd.c} +10 -8
- data/vendor/libgit2/src/cli/cmd.h +37 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +202 -0
- data/vendor/libgit2/src/cli/cmd_clone.c +190 -0
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +152 -0
- data/vendor/libgit2/src/cli/cmd_help.c +85 -0
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +51 -0
- data/vendor/libgit2/src/cli/main.c +134 -0
- data/vendor/libgit2/src/cli/opt.c +695 -0
- data/vendor/libgit2/src/cli/opt.h +367 -0
- data/vendor/libgit2/src/cli/opt_usage.c +263 -0
- data/vendor/libgit2/src/cli/opt_usage.h +40 -0
- data/vendor/libgit2/src/cli/progress.c +395 -0
- data/vendor/libgit2/src/cli/progress.h +129 -0
- data/vendor/libgit2/src/cli/sighandler.h +20 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +37 -0
- data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
- data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +140 -0
- data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +2 -2
- data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
- data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +32 -34
- data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
- data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +48 -31
- data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +25 -20
- data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +6 -4
- data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +87 -46
- data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +5 -9
- data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +152 -57
- data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +1 -0
- data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -2
- data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
- data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
- data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
- data/vendor/libgit2/src/libgit2/branch.h +31 -0
- data/vendor/libgit2/src/libgit2/buf.c +126 -0
- data/vendor/libgit2/src/libgit2/buf.h +50 -0
- data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +22 -17
- data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +7 -9
- data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +107 -91
- data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -2
- data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +14 -15
- data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +254 -203
- data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +4 -1
- data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +296 -77
- data/vendor/libgit2/src/libgit2/commit.h +87 -0
- data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +246 -135
- data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +33 -8
- data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +17 -7
- data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +1 -0
- data/vendor/libgit2/src/libgit2/common.h +55 -0
- data/vendor/libgit2/src/{config.c → libgit2/config.c} +490 -360
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/{config.h → libgit2/config.h} +24 -6
- data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +8 -10
- data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +4 -5
- data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +212 -183
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +374 -0
- data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +37 -32
- data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +24 -31
- data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
- data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +62 -51
- data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +44 -14
- data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +8 -10
- data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +46 -55
- data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +5 -5
- data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +45 -27
- data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +70 -20
- data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
- data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +22 -6
- data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +192 -105
- data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
- data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
- data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +49 -16
- data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
- data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +1 -1
- data/vendor/libgit2/src/{email.c → libgit2/email.c} +58 -40
- data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
- data/vendor/libgit2/src/{transports/ssh.h → libgit2/experimental.h.in} +3 -4
- data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +105 -30
- data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -3
- data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +30 -28
- data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +132 -58
- data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
- data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
- data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +44 -39
- data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
- data/vendor/libgit2/src/{index.c → libgit2/index.c} +460 -276
- data/vendor/libgit2/src/{index.h → libgit2/index.h} +21 -5
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +208 -124
- data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +102 -71
- data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +8 -5
- data/vendor/libgit2/src/libgit2/libgit2.c +268 -0
- data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +39 -37
- data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +83 -73
- data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
- data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +4 -4
- data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -5
- data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
- data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +174 -112
- data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +17 -6
- data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +53 -57
- data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +9 -2
- data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +29 -37
- data/vendor/libgit2/src/{object.c → libgit2/object.c} +166 -35
- data/vendor/libgit2/src/{object.h → libgit2/object.h} +17 -2
- data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +261 -88
- data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
- data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
- data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +67 -22
- data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +162 -89
- data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +171 -92
- data/vendor/libgit2/src/libgit2/oid.h +284 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +89 -0
- data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +5 -1
- data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +126 -66
- data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +28 -12
- data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +146 -111
- data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +45 -25
- data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +8 -4
- data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +1 -1
- data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
- data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +8 -1
- data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +51 -16
- data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
- data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +42 -34
- data/vendor/libgit2/src/libgit2/path.c +375 -0
- data/vendor/libgit2/src/libgit2/path.h +68 -0
- data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +7 -7
- data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
- data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
- data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
- data/vendor/libgit2/src/{push.c → libgit2/push.c} +116 -60
- data/vendor/libgit2/src/{push.h → libgit2/push.h} +5 -16
- data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
- data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
- data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +147 -147
- data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +639 -254
- data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +8 -7
- data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +3 -2
- data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +67 -39
- data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +8 -3
- data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +60 -38
- data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +13 -2
- data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +821 -454
- data/vendor/libgit2/src/libgit2/remote.h +101 -0
- data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1377 -594
- data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +43 -12
- data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
- data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +18 -22
- data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +76 -44
- data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +48 -19
- data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +3 -3
- data/vendor/libgit2/src/{libgit2.c → libgit2/settings.c} +162 -95
- data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +6 -2
- data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +144 -21
- data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -2
- data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +243 -68
- data/vendor/libgit2/src/{status.c → libgit2/status.c} +5 -2
- data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
- data/vendor/libgit2/src/libgit2/strarray.h +25 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +62 -67
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +41 -24
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +2 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +11 -3
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +6 -3
- data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +428 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +3 -1
- data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +79 -19
- data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +5 -0
- data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +279 -220
- data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +10 -11
- data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
- data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +55 -18
- data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +74 -43
- data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
- data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
- data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
- data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +7 -7
- data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +27 -21
- data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +4 -1
- data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +14 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +3 -5
- data/vendor/libgit2/src/{transports/auth_negotiate.c → libgit2/transports/auth_gssapi.c} +44 -45
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +1 -2
- data/vendor/libgit2/src/{transports/auth_ntlm.c → libgit2/transports/auth_ntlmclient.c} +22 -22
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +16 -19
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +49 -24
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +188 -134
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +159 -127
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +142 -165
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +56 -36
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +307 -74
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +297 -97
- data/vendor/libgit2/src/libgit2/transports/ssh.c +85 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/{transports/ssh.c → libgit2/transports/ssh_libssh2.c} +414 -268
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +101 -75
- data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +30 -20
- data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +7 -5
- data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +128 -110
- data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +7 -6
- data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +160 -121
- data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
- data/vendor/libgit2/src/util/CMakeLists.txt +77 -0
- data/vendor/libgit2/src/{alloc.c → util/alloc.c} +69 -7
- data/vendor/libgit2/src/util/alloc.h +65 -0
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/util/allocators/debugalloc.h +17 -0
- data/vendor/libgit2/src/util/allocators/failalloc.c +32 -0
- data/vendor/libgit2/src/util/allocators/failalloc.h +17 -0
- data/vendor/libgit2/src/util/allocators/stdalloc.c +37 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +50 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{array.h → util/array.h} +25 -19
- data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
- data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +5 -1
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/{date.c → util/date.c} +35 -33
- data/vendor/libgit2/src/util/date.h +45 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{errors.h → util/errors.h} +22 -19
- data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +35 -30
- data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +21 -8
- data/vendor/libgit2/src/{path.c → util/fs_path.c} +591 -615
- data/vendor/libgit2/src/{path.h → util/fs_path.h} +257 -181
- data/vendor/libgit2/src/{futils.c → util/futils.c} +144 -95
- data/vendor/libgit2/src/{futils.h → util/futils.h} +40 -18
- data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +33 -2
- data/vendor/libgit2/src/{common.h → util/git2_util.h} +26 -59
- data/vendor/libgit2/src/util/hash/builtin.c +53 -0
- data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
- data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
- data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +347 -0
- data/vendor/libgit2/src/util/hash/openssl.h +61 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
- data/vendor/libgit2/src/util/hash/sha.h +73 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
- data/vendor/libgit2/src/util/hash/win32.c +549 -0
- data/vendor/libgit2/src/util/hash/win32.h +60 -0
- data/vendor/libgit2/src/util/hash.c +158 -0
- data/vendor/libgit2/src/util/hash.h +61 -0
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/{integer.h → util/integer.h} +3 -1
- data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
- data/vendor/libgit2/src/util/net.c +1160 -0
- data/vendor/libgit2/src/{net.h → util/net.h} +45 -4
- data/vendor/libgit2/src/{pool.c → util/pool.c} +1 -1
- data/vendor/libgit2/src/{pool.h → util/pool.h} +6 -1
- data/vendor/libgit2/src/{posix.c → util/posix.c} +57 -3
- data/vendor/libgit2/src/{posix.h → util/posix.h} +26 -1
- data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +3 -3
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +230 -0
- data/vendor/libgit2/src/util/rand.h +37 -0
- data/vendor/libgit2/src/{regexp.c → util/regexp.c} +5 -5
- data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
- data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
- data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
- data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +15 -14
- data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +5 -5
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/{buffer.c → util/str.c} +159 -153
- data/vendor/libgit2/src/util/str.h +357 -0
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
- data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
- data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
- data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -6
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/{unix → util/unix}/realpath.c +24 -8
- data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
- data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
- data/vendor/libgit2/src/{util.c → util/util.c} +24 -19
- data/vendor/libgit2/src/{util.h → util/util.h} +30 -81
- data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
- data/vendor/libgit2/src/{vector.c → util/vector.c} +3 -3
- data/vendor/libgit2/src/{vector.h → util/vector.h} +4 -4
- data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +148 -17
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
- data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +42 -35
- data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
- data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
- data/vendor/libgit2/src/util/win32/utf-conv.c +144 -0
- data/vendor/libgit2/src/util/win32/utf-conv.h +127 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
- data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
- data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
- metadata +431 -362
- data/vendor/libgit2/cmake/FindIconv.cmake +0 -45
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/alloc.h +0 -40
- data/vendor/libgit2/src/allocators/failalloc.c +0 -92
- data/vendor/libgit2/src/allocators/failalloc.h +0 -23
- data/vendor/libgit2/src/allocators/stdalloc.c +0 -150
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +0 -118
- data/vendor/libgit2/src/buffer.h +0 -374
- data/vendor/libgit2/src/commit.h +0 -46
- data/vendor/libgit2/src/config_entries.c +0 -237
- data/vendor/libgit2/src/config_entries.h +0 -24
- data/vendor/libgit2/src/config_mem.c +0 -220
- data/vendor/libgit2/src/errors.c +0 -238
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
- data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
- data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
- data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
- data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
- data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
- data/vendor/libgit2/src/hash/sha1.h +0 -38
- data/vendor/libgit2/src/hash.c +0 -110
- data/vendor/libgit2/src/hash.h +0 -46
- data/vendor/libgit2/src/idxmap.c +0 -157
- data/vendor/libgit2/src/idxmap.h +0 -177
- data/vendor/libgit2/src/khash.h +0 -615
- data/vendor/libgit2/src/libgit2.h +0 -15
- data/vendor/libgit2/src/message.h +0 -17
- data/vendor/libgit2/src/net.c +0 -540
- data/vendor/libgit2/src/netops.c +0 -125
- data/vendor/libgit2/src/netops.h +0 -68
- data/vendor/libgit2/src/offmap.c +0 -101
- data/vendor/libgit2/src/offmap.h +0 -133
- data/vendor/libgit2/src/oid.h +0 -51
- data/vendor/libgit2/src/oidarray.c +0 -43
- data/vendor/libgit2/src/oidmap.c +0 -107
- data/vendor/libgit2/src/oidmap.h +0 -128
- data/vendor/libgit2/src/remote.h +0 -55
- data/vendor/libgit2/src/streams/socket.c +0 -239
- data/vendor/libgit2/src/strmap.c +0 -100
- data/vendor/libgit2/src/strmap.h +0 -131
- data/vendor/libgit2/src/sysdir.c +0 -347
- data/vendor/libgit2/src/threadstate.c +0 -84
- data/vendor/libgit2/src/threadstate.h +0 -24
- data/vendor/libgit2/src/win32/findfile.c +0 -230
- data/vendor/libgit2/src/win32/findfile.h +0 -19
- data/vendor/libgit2/src/win32/utf-conv.c +0 -146
- data/vendor/libgit2/src/win32/utf-conv.h +0 -60
- /data/vendor/libgit2/{src → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src → deps}/xdiff/xtypes.h +0 -0
- /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
- /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
- /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
- /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
- /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
- /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
- /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
- /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
- /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
- /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
- /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
- /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
- /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
- /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
- /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
- /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
- /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
- /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
- /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
- /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
- /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
- /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
- /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
- /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
- /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
- /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
- /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
- /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
- /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -0,0 +1,89 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
+
*
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
+
*/
|
7
|
+
|
8
|
+
#include "oidarray.h"
|
9
|
+
|
10
|
+
#include "git2/oidarray.h"
|
11
|
+
#include "array.h"
|
12
|
+
|
13
|
+
void git_oidarray_dispose(git_oidarray *arr)
|
14
|
+
{
|
15
|
+
git__free(arr->ids);
|
16
|
+
}
|
17
|
+
|
18
|
+
void git_oidarray__from_array(git_oidarray *out, const git_array_oid_t *array)
|
19
|
+
{
|
20
|
+
out->count = array->size;
|
21
|
+
out->ids = array->ptr;
|
22
|
+
}
|
23
|
+
|
24
|
+
void git_oidarray__to_array(git_array_oid_t *out, const git_oidarray *array)
|
25
|
+
{
|
26
|
+
out->ptr = array->ids;
|
27
|
+
out->size = array->count;
|
28
|
+
out->asize = array->count;
|
29
|
+
}
|
30
|
+
|
31
|
+
void git_oidarray__reverse(git_oidarray *arr)
|
32
|
+
{
|
33
|
+
size_t i;
|
34
|
+
git_oid tmp;
|
35
|
+
|
36
|
+
for (i = 0; i < arr->count / 2; i++) {
|
37
|
+
git_oid_cpy(&tmp, &arr->ids[i]);
|
38
|
+
git_oid_cpy(&arr->ids[i], &arr->ids[(arr->count-1)-i]);
|
39
|
+
git_oid_cpy(&arr->ids[(arr->count-1)-i], &tmp);
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
int git_oidarray__add(git_array_oid_t *arr, git_oid *id)
|
44
|
+
{
|
45
|
+
git_oid *add, *iter;
|
46
|
+
size_t i;
|
47
|
+
|
48
|
+
git_array_foreach(*arr, i, iter) {
|
49
|
+
if (git_oid_cmp(iter, id) == 0)
|
50
|
+
return 0;
|
51
|
+
}
|
52
|
+
|
53
|
+
if ((add = git_array_alloc(*arr)) == NULL)
|
54
|
+
return -1;
|
55
|
+
|
56
|
+
git_oid_cpy(add, id);
|
57
|
+
return 0;
|
58
|
+
}
|
59
|
+
|
60
|
+
bool git_oidarray__remove(git_array_oid_t *arr, git_oid *id)
|
61
|
+
{
|
62
|
+
bool found = false;
|
63
|
+
size_t remain, i;
|
64
|
+
git_oid *iter;
|
65
|
+
|
66
|
+
git_array_foreach(*arr, i, iter) {
|
67
|
+
if (git_oid_cmp(iter, id) == 0) {
|
68
|
+
arr->size--;
|
69
|
+
remain = arr->size - i;
|
70
|
+
|
71
|
+
if (remain > 0)
|
72
|
+
memmove(&arr->ptr[i], &arr->ptr[i+1], remain * sizeof(git_oid));
|
73
|
+
|
74
|
+
found = true;
|
75
|
+
break;
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
return found;
|
80
|
+
}
|
81
|
+
|
82
|
+
#ifndef GIT_DEPRECATE_HARD
|
83
|
+
|
84
|
+
void git_oidarray_free(git_oidarray *arr)
|
85
|
+
{
|
86
|
+
git_oidarray_dispose(arr);
|
87
|
+
}
|
88
|
+
|
89
|
+
#endif
|
@@ -15,6 +15,10 @@
|
|
15
15
|
typedef git_array_t(git_oid) git_array_oid_t;
|
16
16
|
|
17
17
|
extern void git_oidarray__reverse(git_oidarray *arr);
|
18
|
-
extern void git_oidarray__from_array(git_oidarray *
|
18
|
+
extern void git_oidarray__from_array(git_oidarray *out, const git_array_oid_t *array);
|
19
|
+
extern void git_oidarray__to_array(git_array_oid_t *out, const git_oidarray *array);
|
20
|
+
|
21
|
+
int git_oidarray__add(git_array_oid_t *arr, git_oid *id);
|
22
|
+
bool git_oidarray__remove(git_array_oid_t *arr, git_oid *id);
|
19
23
|
|
20
24
|
#endif
|
@@ -7,10 +7,10 @@
|
|
7
7
|
|
8
8
|
#include "pack-objects.h"
|
9
9
|
|
10
|
+
#include "buf.h"
|
10
11
|
#include "zstream.h"
|
11
12
|
#include "delta.h"
|
12
13
|
#include "iterator.h"
|
13
|
-
#include "netops.h"
|
14
14
|
#include "pack.h"
|
15
15
|
#include "thread.h"
|
16
16
|
#include "tree.h"
|
@@ -33,7 +33,7 @@ struct unpacked {
|
|
33
33
|
|
34
34
|
struct tree_walk_context {
|
35
35
|
git_packbuilder *pb;
|
36
|
-
|
36
|
+
git_str buf;
|
37
37
|
};
|
38
38
|
|
39
39
|
struct pack_write_context {
|
@@ -64,6 +64,9 @@ struct walk_object {
|
|
64
64
|
/* Size of the buffer to feed to zlib */
|
65
65
|
#define COMPRESS_BUFLEN (1024 * 1024)
|
66
66
|
|
67
|
+
GIT_HASHMAP_OID_FUNCTIONS(git_packbuilder_pobjectmap, GIT_HASHMAP_INLINE, git_pobject *);
|
68
|
+
GIT_HASHMAP_OID_FUNCTIONS(git_packbuilder_walk_objectmap, GIT_HASHMAP_INLINE, struct walk_object *);
|
69
|
+
|
67
70
|
static unsigned name_hash(const char *name)
|
68
71
|
{
|
69
72
|
unsigned c, hash = 0;
|
@@ -126,6 +129,7 @@ out:
|
|
126
129
|
|
127
130
|
int git_packbuilder_new(git_packbuilder **out, git_repository *repo)
|
128
131
|
{
|
132
|
+
git_hash_algorithm_t hash_algorithm;
|
129
133
|
git_packbuilder *pb;
|
130
134
|
|
131
135
|
*out = NULL;
|
@@ -133,15 +137,18 @@ int git_packbuilder_new(git_packbuilder **out, git_repository *repo)
|
|
133
137
|
pb = git__calloc(1, sizeof(*pb));
|
134
138
|
GIT_ERROR_CHECK_ALLOC(pb);
|
135
139
|
|
136
|
-
|
137
|
-
|
138
|
-
|
140
|
+
pb->oid_type = repo->oid_type;
|
141
|
+
|
142
|
+
hash_algorithm = git_oid_algorithm(pb->oid_type);
|
143
|
+
GIT_ASSERT(hash_algorithm);
|
144
|
+
|
145
|
+
if (git_pool_init(&pb->object_pool, sizeof(struct walk_object)) < 0)
|
139
146
|
goto on_error;
|
140
147
|
|
141
148
|
pb->repo = repo;
|
142
149
|
pb->nr_threads = 1; /* do not spawn any thread by default */
|
143
150
|
|
144
|
-
if (git_hash_ctx_init(&pb->ctx) < 0 ||
|
151
|
+
if (git_hash_ctx_init(&pb->ctx, hash_algorithm) < 0 ||
|
145
152
|
git_zstream_init(&pb->zstream, GIT_ZSTREAM_DEFLATE) < 0 ||
|
146
153
|
git_repository_odb(&pb->odb, repo) < 0 ||
|
147
154
|
packbuilder_config(pb) < 0)
|
@@ -186,10 +193,10 @@ static int rehash(git_packbuilder *pb)
|
|
186
193
|
git_pobject *po;
|
187
194
|
size_t i;
|
188
195
|
|
189
|
-
|
196
|
+
git_packbuilder_pobjectmap_clear(&pb->object_ix);
|
190
197
|
|
191
198
|
for (i = 0, po = pb->object_list; i < pb->nr_objects; i++, po++) {
|
192
|
-
if (
|
199
|
+
if (git_packbuilder_pobjectmap_put(&pb->object_ix, &po->id, po) < 0)
|
193
200
|
return -1;
|
194
201
|
}
|
195
202
|
|
@@ -208,7 +215,7 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
208
215
|
|
209
216
|
/* If the object already exists in the hash table, then we don't
|
210
217
|
* have any work to do */
|
211
|
-
if (
|
218
|
+
if (git_packbuilder_pobjectmap_contains(&pb->object_ix, oid))
|
212
219
|
return 0;
|
213
220
|
|
214
221
|
if (pb->nr_objects >= pb->nr_alloc) {
|
@@ -240,7 +247,7 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
240
247
|
git_oid_cpy(&po->id, oid);
|
241
248
|
po->hash = name_hash(name);
|
242
249
|
|
243
|
-
if (
|
250
|
+
if (git_packbuilder_pobjectmap_put(&pb->object_ix, &po->id, po) < 0) {
|
244
251
|
git_error_set_oom();
|
245
252
|
return -1;
|
246
253
|
}
|
@@ -248,10 +255,10 @@ int git_packbuilder_insert(git_packbuilder *pb, const git_oid *oid,
|
|
248
255
|
pb->done = false;
|
249
256
|
|
250
257
|
if (pb->progress_cb) {
|
251
|
-
|
252
|
-
|
258
|
+
uint64_t current_time = git_time_monotonic();
|
259
|
+
uint64_t elapsed = current_time - pb->last_progress_report_time;
|
253
260
|
|
254
|
-
if (elapsed
|
261
|
+
if (elapsed >= MIN_PROGRESS_UPDATE_INTERVAL) {
|
255
262
|
pb->last_progress_report_time = current_time;
|
256
263
|
|
257
264
|
ret = pb->progress_cb(
|
@@ -314,9 +321,11 @@ static int write_object(
|
|
314
321
|
git_object_t type;
|
315
322
|
unsigned char hdr[10], *zbuf = NULL;
|
316
323
|
void *data = NULL;
|
317
|
-
size_t hdr_len, zbuf_len = COMPRESS_BUFLEN, data_len;
|
324
|
+
size_t hdr_len, zbuf_len = COMPRESS_BUFLEN, data_len, oid_size;
|
318
325
|
int error;
|
319
326
|
|
327
|
+
oid_size = git_oid_size(pb->oid_type);
|
328
|
+
|
320
329
|
/*
|
321
330
|
* If we have a delta base, let's use the delta to save space.
|
322
331
|
* Otherwise load the whole object. 'data' ends up pointing to
|
@@ -346,8 +355,8 @@ static int write_object(
|
|
346
355
|
goto done;
|
347
356
|
|
348
357
|
if (type == GIT_OBJECT_REF_DELTA) {
|
349
|
-
if ((error = write_cb(po->delta->id.id,
|
350
|
-
|
358
|
+
if ((error = write_cb(po->delta->id.id, oid_size, cb_data)) < 0 ||
|
359
|
+
(error = git_hash_update(&pb->ctx, po->delta->id.id, oid_size)) < 0)
|
351
360
|
goto done;
|
352
361
|
}
|
353
362
|
|
@@ -507,7 +516,7 @@ static int cb_tag_foreach(const char *name, git_oid *oid, void *data)
|
|
507
516
|
|
508
517
|
GIT_UNUSED(name);
|
509
518
|
|
510
|
-
if ((po
|
519
|
+
if (git_packbuilder_pobjectmap_get(&po, &pb->object_ix, oid) != 0)
|
511
520
|
return 0;
|
512
521
|
|
513
522
|
po->tagged = 1;
|
@@ -664,10 +673,10 @@ static int write_pack(git_packbuilder *pb,
|
|
664
673
|
pb->nr_remaining -= pb->nr_written;
|
665
674
|
} while (pb->nr_remaining && i < pb->nr_objects);
|
666
675
|
|
667
|
-
if ((error = git_hash_final(
|
676
|
+
if ((error = git_hash_final(entry_oid.id, &pb->ctx)) < 0)
|
668
677
|
goto done;
|
669
678
|
|
670
|
-
error = write_cb(entry_oid.id,
|
679
|
+
error = write_cb(entry_oid.id, git_oid_size(pb->oid_type), cb_data);
|
671
680
|
|
672
681
|
done:
|
673
682
|
/* if callback cancelled writing, we must still free delta_data */
|
@@ -685,8 +694,8 @@ done:
|
|
685
694
|
|
686
695
|
static int write_pack_buf(void *buf, size_t size, void *data)
|
687
696
|
{
|
688
|
-
|
689
|
-
return
|
697
|
+
git_str *b = (git_str *)data;
|
698
|
+
return git_str_put(b, buf, size);
|
690
699
|
}
|
691
700
|
|
692
701
|
static int type_size_sort(const void *_a, const void *_b)
|
@@ -924,19 +933,24 @@ static int report_delta_progress(
|
|
924
933
|
{
|
925
934
|
int ret;
|
926
935
|
|
936
|
+
if (pb->failure)
|
937
|
+
return pb->failure;
|
938
|
+
|
927
939
|
if (pb->progress_cb) {
|
928
|
-
|
929
|
-
|
940
|
+
uint64_t current_time = git_time_monotonic();
|
941
|
+
uint64_t elapsed = current_time - pb->last_progress_report_time;
|
930
942
|
|
931
|
-
if (force || elapsed
|
943
|
+
if (force || elapsed >= MIN_PROGRESS_UPDATE_INTERVAL) {
|
932
944
|
pb->last_progress_report_time = current_time;
|
933
945
|
|
934
946
|
ret = pb->progress_cb(
|
935
947
|
GIT_PACKBUILDER_DELTAFICATION,
|
936
948
|
count, pb->nr_objects, pb->progress_cb_payload);
|
937
949
|
|
938
|
-
if (ret)
|
950
|
+
if (ret) {
|
951
|
+
pb->failure = ret;
|
939
952
|
return git_error_set_after_callback(ret);
|
953
|
+
}
|
940
954
|
}
|
941
955
|
}
|
942
956
|
|
@@ -947,7 +961,7 @@ static int find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
947
961
|
size_t *list_size, size_t window, size_t depth)
|
948
962
|
{
|
949
963
|
git_pobject *po;
|
950
|
-
|
964
|
+
git_str zbuf = GIT_STR_INIT;
|
951
965
|
struct unpacked *array;
|
952
966
|
size_t idx = 0, count = 0;
|
953
967
|
size_t mem_usage = 0;
|
@@ -968,7 +982,10 @@ static int find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
968
982
|
}
|
969
983
|
|
970
984
|
pb->nr_deltified += 1;
|
971
|
-
report_delta_progress(pb, pb->nr_deltified, false)
|
985
|
+
if ((error = report_delta_progress(pb, pb->nr_deltified, false)) < 0) {
|
986
|
+
GIT_ASSERT(git_packbuilder__progress_unlock(pb) == 0);
|
987
|
+
goto on_error;
|
988
|
+
}
|
972
989
|
|
973
990
|
po = *list++;
|
974
991
|
(*list_size)--;
|
@@ -1045,7 +1062,7 @@ static int find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
1045
1062
|
|
1046
1063
|
memcpy(po->delta_data, zbuf.ptr, zbuf.size);
|
1047
1064
|
po->z_delta_size = zbuf.size;
|
1048
|
-
|
1065
|
+
git_str_clear(&zbuf);
|
1049
1066
|
|
1050
1067
|
GIT_ASSERT(git_packbuilder__cache_lock(pb) == 0);
|
1051
1068
|
pb->delta_cache_size -= po->delta_size;
|
@@ -1093,7 +1110,7 @@ on_error:
|
|
1093
1110
|
git__free(array[i].data);
|
1094
1111
|
}
|
1095
1112
|
git__free(array);
|
1096
|
-
|
1113
|
+
git_str_dispose(&zbuf);
|
1097
1114
|
|
1098
1115
|
return error;
|
1099
1116
|
}
|
@@ -1116,6 +1133,10 @@ struct thread_params {
|
|
1116
1133
|
size_t depth;
|
1117
1134
|
size_t working;
|
1118
1135
|
size_t data_ready;
|
1136
|
+
|
1137
|
+
/* A pb->progress_cb can stop the packing process by returning an error.
|
1138
|
+
When that happens, all threads observe the error and stop voluntarily. */
|
1139
|
+
bool stopped;
|
1119
1140
|
};
|
1120
1141
|
|
1121
1142
|
static void *threaded_find_deltas(void *arg)
|
@@ -1125,7 +1146,12 @@ static void *threaded_find_deltas(void *arg)
|
|
1125
1146
|
while (me->remaining) {
|
1126
1147
|
if (find_deltas(me->pb, me->list, &me->remaining,
|
1127
1148
|
me->window, me->depth) < 0) {
|
1128
|
-
|
1149
|
+
me->stopped = true;
|
1150
|
+
GIT_ASSERT_WITH_RETVAL(git_packbuilder__progress_lock(me->pb) == 0, NULL);
|
1151
|
+
me->working = false;
|
1152
|
+
git_cond_signal(&me->pb->progress_cond);
|
1153
|
+
GIT_ASSERT_WITH_RETVAL(git_packbuilder__progress_unlock(me->pb) == 0, NULL);
|
1154
|
+
return NULL;
|
1129
1155
|
}
|
1130
1156
|
|
1131
1157
|
GIT_ASSERT_WITH_RETVAL(git_packbuilder__progress_lock(me->pb) == 0, NULL);
|
@@ -1167,8 +1193,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
1167
1193
|
pb->nr_threads = git__online_cpus();
|
1168
1194
|
|
1169
1195
|
if (pb->nr_threads <= 1) {
|
1170
|
-
find_deltas(pb, list, &list_size, window, depth);
|
1171
|
-
return 0;
|
1196
|
+
return find_deltas(pb, list, &list_size, window, depth);
|
1172
1197
|
}
|
1173
1198
|
|
1174
1199
|
p = git__mallocarray(pb->nr_threads, sizeof(*p));
|
@@ -1187,6 +1212,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
1187
1212
|
p[i].depth = depth;
|
1188
1213
|
p[i].working = 1;
|
1189
1214
|
p[i].data_ready = 0;
|
1215
|
+
p[i].stopped = 0;
|
1190
1216
|
|
1191
1217
|
/* try to split chunks on "path" boundaries */
|
1192
1218
|
while (sub_size && sub_size < list_size &&
|
@@ -1254,7 +1280,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
1254
1280
|
(!victim || victim->remaining < p[i].remaining))
|
1255
1281
|
victim = &p[i];
|
1256
1282
|
|
1257
|
-
if (victim) {
|
1283
|
+
if (victim && !target->stopped) {
|
1258
1284
|
sub_size = victim->remaining / 2;
|
1259
1285
|
list = victim->list + victim->list_size - sub_size;
|
1260
1286
|
while (sub_size && list[0]->hash &&
|
@@ -1278,7 +1304,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
1278
1304
|
}
|
1279
1305
|
target->list_size = sub_size;
|
1280
1306
|
target->remaining = sub_size;
|
1281
|
-
target->working = 1;
|
1307
|
+
target->working = 1; /* even when target->stopped, so that we don't process this thread again */
|
1282
1308
|
GIT_ASSERT(git_packbuilder__progress_unlock(pb) == 0);
|
1283
1309
|
|
1284
1310
|
if (git_mutex_lock(&target->mutex)) {
|
@@ -1291,7 +1317,7 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
1291
1317
|
git_cond_signal(&target->cond);
|
1292
1318
|
git_mutex_unlock(&target->mutex);
|
1293
1319
|
|
1294
|
-
if (!sub_size) {
|
1320
|
+
if (target->stopped || !sub_size) {
|
1295
1321
|
git_thread_join(&target->thread, NULL);
|
1296
1322
|
git_cond_free(&target->cond);
|
1297
1323
|
git_mutex_free(&target->mutex);
|
@@ -1300,17 +1326,18 @@ static int ll_find_deltas(git_packbuilder *pb, git_pobject **list,
|
|
1300
1326
|
}
|
1301
1327
|
|
1302
1328
|
git__free(p);
|
1303
|
-
return
|
1329
|
+
return pb->failure;
|
1304
1330
|
}
|
1305
1331
|
|
1306
1332
|
#else
|
1307
1333
|
#define ll_find_deltas(pb, l, ls, w, d) find_deltas(pb, l, &ls, w, d)
|
1308
1334
|
#endif
|
1309
1335
|
|
1310
|
-
|
1336
|
+
int git_packbuilder__prepare(git_packbuilder *pb)
|
1311
1337
|
{
|
1312
1338
|
git_pobject **delta_list;
|
1313
1339
|
size_t i, n = 0;
|
1340
|
+
int error;
|
1314
1341
|
|
1315
1342
|
if (pb->nr_objects == 0 || pb->done)
|
1316
1343
|
return 0; /* nothing to do */
|
@@ -1319,8 +1346,10 @@ static int prepare_pack(git_packbuilder *pb)
|
|
1319
1346
|
* Although we do not report progress during deltafication, we
|
1320
1347
|
* at least report that we are in the deltafication stage
|
1321
1348
|
*/
|
1322
|
-
if (pb->progress_cb)
|
1323
|
-
|
1349
|
+
if (pb->progress_cb) {
|
1350
|
+
if ((error = pb->progress_cb(GIT_PACKBUILDER_DELTAFICATION, 0, pb->nr_objects, pb->progress_cb_payload)) < 0)
|
1351
|
+
return git_error_set_after_callback(error);
|
1352
|
+
}
|
1324
1353
|
|
1325
1354
|
delta_list = git__mallocarray(pb->nr_objects, sizeof(*delta_list));
|
1326
1355
|
GIT_ERROR_CHECK_ALLOC(delta_list);
|
@@ -1337,41 +1366,43 @@ static int prepare_pack(git_packbuilder *pb)
|
|
1337
1366
|
|
1338
1367
|
if (n > 1) {
|
1339
1368
|
git__tsort((void **)delta_list, n, type_size_sort);
|
1340
|
-
if (ll_find_deltas(pb, delta_list, n,
|
1369
|
+
if ((error = ll_find_deltas(pb, delta_list, n,
|
1341
1370
|
GIT_PACK_WINDOW + 1,
|
1342
|
-
GIT_PACK_DEPTH) < 0) {
|
1371
|
+
GIT_PACK_DEPTH)) < 0) {
|
1343
1372
|
git__free(delta_list);
|
1344
|
-
return
|
1373
|
+
return error;
|
1345
1374
|
}
|
1346
1375
|
}
|
1347
1376
|
|
1348
|
-
report_delta_progress(pb, pb->nr_objects, true);
|
1377
|
+
error = report_delta_progress(pb, pb->nr_objects, true);
|
1349
1378
|
|
1350
1379
|
pb->done = true;
|
1351
1380
|
git__free(delta_list);
|
1352
|
-
return
|
1381
|
+
return error;
|
1353
1382
|
}
|
1354
1383
|
|
1355
|
-
#define PREPARE_PACK
|
1384
|
+
#define PREPARE_PACK error = git_packbuilder__prepare(pb); if (error < 0) { return error; }
|
1356
1385
|
|
1357
1386
|
int git_packbuilder_foreach(git_packbuilder *pb, int (*cb)(void *buf, size_t size, void *payload), void *payload)
|
1358
1387
|
{
|
1388
|
+
int error;
|
1359
1389
|
PREPARE_PACK;
|
1360
1390
|
return write_pack(pb, cb, payload);
|
1361
1391
|
}
|
1362
1392
|
|
1363
|
-
int
|
1393
|
+
int git_packbuilder__write_buf(git_str *buf, git_packbuilder *pb)
|
1364
1394
|
{
|
1365
1395
|
int error;
|
1366
|
-
|
1367
|
-
if ((error = git_buf_sanitize(buf)) < 0)
|
1368
|
-
return error;
|
1369
|
-
|
1370
1396
|
PREPARE_PACK;
|
1371
1397
|
|
1372
1398
|
return write_pack(pb, &write_pack_buf, buf);
|
1373
1399
|
}
|
1374
1400
|
|
1401
|
+
int git_packbuilder_write_buf(git_buf *buf, git_packbuilder *pb)
|
1402
|
+
{
|
1403
|
+
GIT_BUF_WRAP_PRIVATE(buf, git_packbuilder__write_buf, pb);
|
1404
|
+
}
|
1405
|
+
|
1375
1406
|
static int write_cb(void *buf, size_t len, void *payload)
|
1376
1407
|
{
|
1377
1408
|
struct pack_write_context *ctx = payload;
|
@@ -1386,7 +1417,7 @@ int git_packbuilder_write(
|
|
1386
1417
|
void *progress_cb_payload)
|
1387
1418
|
{
|
1388
1419
|
int error = -1;
|
1389
|
-
|
1420
|
+
git_str object_path = GIT_STR_INIT;
|
1390
1421
|
git_indexer_options opts = GIT_INDEXER_OPTIONS_INIT;
|
1391
1422
|
git_indexer *indexer = NULL;
|
1392
1423
|
git_indexer_progress stats;
|
@@ -1396,17 +1427,29 @@ int git_packbuilder_write(
|
|
1396
1427
|
PREPARE_PACK;
|
1397
1428
|
|
1398
1429
|
if (path == NULL) {
|
1399
|
-
if ((error =
|
1430
|
+
if ((error = git_repository__item_path(&object_path, pb->repo, GIT_REPOSITORY_ITEM_OBJECTS)) < 0)
|
1400
1431
|
goto cleanup;
|
1401
|
-
if ((error =
|
1432
|
+
if ((error = git_str_joinpath(&object_path, git_str_cstr(&object_path), "pack")) < 0)
|
1402
1433
|
goto cleanup;
|
1403
|
-
path =
|
1434
|
+
path = git_str_cstr(&object_path);
|
1404
1435
|
}
|
1405
1436
|
|
1406
1437
|
opts.progress_cb = progress_cb;
|
1407
1438
|
opts.progress_cb_payload = progress_cb_payload;
|
1408
1439
|
|
1409
|
-
|
1440
|
+
/* TODO: SHA256 */
|
1441
|
+
|
1442
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
1443
|
+
opts.mode = mode;
|
1444
|
+
opts.odb = pb->odb;
|
1445
|
+
opts.oid_type = GIT_OID_SHA1;
|
1446
|
+
|
1447
|
+
error = git_indexer_new(&indexer, path, &opts);
|
1448
|
+
#else
|
1449
|
+
error = git_indexer_new(&indexer, path, mode, pb->odb, &opts);
|
1450
|
+
#endif
|
1451
|
+
|
1452
|
+
if (error < 0)
|
1410
1453
|
goto cleanup;
|
1411
1454
|
|
1412
1455
|
if (!git_repository__configmap_lookup(&t, pb->repo, GIT_CONFIGMAP_FSYNCOBJECTFILES) && t)
|
@@ -1421,20 +1464,32 @@ int git_packbuilder_write(
|
|
1421
1464
|
if ((error = git_indexer_commit(indexer, &stats)) < 0)
|
1422
1465
|
goto cleanup;
|
1423
1466
|
|
1467
|
+
#ifndef GIT_DEPRECATE_HARD
|
1424
1468
|
git_oid_cpy(&pb->pack_oid, git_indexer_hash(indexer));
|
1469
|
+
#endif
|
1470
|
+
|
1471
|
+
pb->pack_name = git__strdup(git_indexer_name(indexer));
|
1472
|
+
GIT_ERROR_CHECK_ALLOC(pb->pack_name);
|
1425
1473
|
|
1426
1474
|
cleanup:
|
1427
1475
|
git_indexer_free(indexer);
|
1428
|
-
|
1476
|
+
git_str_dispose(&object_path);
|
1429
1477
|
return error;
|
1430
1478
|
}
|
1431
1479
|
|
1432
1480
|
#undef PREPARE_PACK
|
1433
1481
|
|
1482
|
+
#ifndef GIT_DEPRECATE_HARD
|
1434
1483
|
const git_oid *git_packbuilder_hash(git_packbuilder *pb)
|
1435
1484
|
{
|
1436
1485
|
return &pb->pack_oid;
|
1437
1486
|
}
|
1487
|
+
#endif
|
1488
|
+
|
1489
|
+
const char *git_packbuilder_name(git_packbuilder *pb)
|
1490
|
+
{
|
1491
|
+
return pb->pack_name;
|
1492
|
+
}
|
1438
1493
|
|
1439
1494
|
|
1440
1495
|
static int cb_tree_walk(
|
@@ -1447,10 +1502,10 @@ static int cb_tree_walk(
|
|
1447
1502
|
if (git_tree_entry_type(entry) == GIT_OBJECT_COMMIT)
|
1448
1503
|
return 0;
|
1449
1504
|
|
1450
|
-
if (!(error =
|
1451
|
-
!(error =
|
1505
|
+
if (!(error = git_str_sets(&ctx->buf, root)) &&
|
1506
|
+
!(error = git_str_puts(&ctx->buf, git_tree_entry_name(entry))))
|
1452
1507
|
error = git_packbuilder_insert(
|
1453
|
-
ctx->pb, git_tree_entry_id(entry),
|
1508
|
+
ctx->pb, git_tree_entry_id(entry), git_str_cstr(&ctx->buf));
|
1454
1509
|
|
1455
1510
|
return error;
|
1456
1511
|
}
|
@@ -1474,14 +1529,14 @@ int git_packbuilder_insert_tree(git_packbuilder *pb, const git_oid *oid)
|
|
1474
1529
|
{
|
1475
1530
|
int error;
|
1476
1531
|
git_tree *tree = NULL;
|
1477
|
-
struct tree_walk_context context = { pb,
|
1532
|
+
struct tree_walk_context context = { pb, GIT_STR_INIT };
|
1478
1533
|
|
1479
1534
|
if (!(error = git_tree_lookup(&tree, pb->repo, oid)) &&
|
1480
1535
|
!(error = git_packbuilder_insert(pb, oid, NULL)))
|
1481
1536
|
error = git_tree_walk(tree, GIT_TREEWALK_PRE, cb_tree_walk, &context);
|
1482
1537
|
|
1483
1538
|
git_tree_free(tree);
|
1484
|
-
|
1539
|
+
git_str_dispose(&context.buf);
|
1485
1540
|
return error;
|
1486
1541
|
}
|
1487
1542
|
|
@@ -1553,12 +1608,16 @@ static int retrieve_object(struct walk_object **out, git_packbuilder *pb, const
|
|
1553
1608
|
struct walk_object *obj;
|
1554
1609
|
int error;
|
1555
1610
|
|
1556
|
-
|
1611
|
+
error = git_packbuilder_walk_objectmap_get(&obj, &pb->walk_objects, id);
|
1612
|
+
|
1613
|
+
if (error == GIT_ENOTFOUND) {
|
1557
1614
|
if ((error = lookup_walk_object(&obj, pb, id)) < 0)
|
1558
1615
|
return error;
|
1559
1616
|
|
1560
|
-
if ((error =
|
1617
|
+
if ((error = git_packbuilder_walk_objectmap_put(&pb->walk_objects, &obj->id, obj)) < 0)
|
1561
1618
|
return error;
|
1619
|
+
} else if (error != 0) {
|
1620
|
+
return error;
|
1562
1621
|
}
|
1563
1622
|
|
1564
1623
|
*out = obj;
|
@@ -1790,17 +1849,18 @@ void git_packbuilder_free(git_packbuilder *pb)
|
|
1790
1849
|
if (pb->odb)
|
1791
1850
|
git_odb_free(pb->odb);
|
1792
1851
|
|
1793
|
-
|
1794
|
-
git_oidmap_free(pb->object_ix);
|
1852
|
+
git_packbuilder_pobjectmap_dispose(&pb->object_ix);
|
1795
1853
|
|
1796
1854
|
if (pb->object_list)
|
1797
1855
|
git__free(pb->object_list);
|
1798
1856
|
|
1799
|
-
|
1857
|
+
git_packbuilder_walk_objectmap_dispose(&pb->walk_objects);
|
1800
1858
|
git_pool_clear(&pb->object_pool);
|
1801
1859
|
|
1802
1860
|
git_hash_ctx_cleanup(&pb->ctx);
|
1803
1861
|
git_zstream_free(&pb->zstream);
|
1804
1862
|
|
1863
|
+
git__free(pb->pack_name);
|
1864
|
+
|
1805
1865
|
git__free(pb);
|
1806
1866
|
}
|