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
@@ -26,6 +26,7 @@
|
|
26
26
|
|
27
27
|
struct pack_backend {
|
28
28
|
git_odb_backend parent;
|
29
|
+
git_odb_backend_pack_options opts;
|
29
30
|
git_midx_file *midx;
|
30
31
|
git_vector midx_packs;
|
31
32
|
git_vector packs;
|
@@ -95,27 +96,27 @@ struct pack_writepack {
|
|
95
96
|
* --------------------------------------------------
|
96
97
|
*
|
97
98
|
* # pack_backend__exists / pack_backend__exists_prefix
|
98
|
-
* | Check if the given
|
99
|
+
* | Check if the given oid (or an oid prefix) exists in any of the
|
99
100
|
* | packs that have been loaded for our ODB.
|
100
101
|
* |
|
101
102
|
* |-# pack_entry_find / pack_entry_find_prefix
|
102
|
-
* | If there is a multi-pack-index present, search the
|
103
|
+
* | If there is a multi-pack-index present, search the oid in that
|
103
104
|
* | index first. If it is not found there, iterate through all the unindexed
|
104
105
|
* | packs that have been preloaded (starting by the pack where the latest
|
105
106
|
* | object was found) to try to find the OID in one of them.
|
106
107
|
* |
|
107
108
|
* |-# git_midx_entry_find
|
108
|
-
* | Search for the
|
109
|
+
* | Search for the oid in the multi-pack-index. See
|
109
110
|
* | <https://github.com/git/git/blob/master/Documentation/technical/pack-format.txt>
|
110
111
|
* | for specifics on the multi-pack-index format and how do we find
|
111
112
|
* | entries in it.
|
112
113
|
* |
|
113
114
|
* |-# git_pack_entry_find
|
114
|
-
* | Check the index of an individual unindexed pack to see if the
|
115
|
-
* | OID can be found. If we can find the offset to that
|
115
|
+
* | Check the index of an individual unindexed pack to see if the
|
116
|
+
* | OID can be found. If we can find the offset to that inside of the
|
116
117
|
* | index, that means the object is contained inside of the packfile and
|
117
118
|
* | we can stop searching. Before returning, we verify that the
|
118
|
-
* | packfile
|
119
|
+
* | packfile behind the index we are searching still exists on disk.
|
119
120
|
* |
|
120
121
|
* |-# pack_entry_find_offset
|
121
122
|
* | Mmap the actual index file to disk if it hasn't been opened
|
@@ -141,13 +142,13 @@ struct pack_writepack {
|
|
141
142
|
* --------------------------------------------------
|
142
143
|
*
|
143
144
|
* # pack_backend__read / pack_backend__read_prefix
|
144
|
-
* | Check if the given
|
145
|
+
* | Check if the given oid (or an oid prefix) exists in any of the
|
145
146
|
* | packs that have been loaded for our ODB. If it does, open the packfile and
|
146
147
|
* | read from it.
|
147
148
|
* |
|
148
149
|
* |-# git_packfile_unpack
|
149
150
|
* Armed with a packfile and the offset within it, we can finally unpack
|
150
|
-
* the object pointed at by the
|
151
|
+
* the object pointed at by the oid. This involves mmapping part of
|
151
152
|
* the `.pack` file, and uncompressing the object within it (if it is
|
152
153
|
* stored in the undelfitied representation), or finding a base object and
|
153
154
|
* applying some deltas to its uncompressed representation (if it is stored
|
@@ -166,7 +167,7 @@ struct pack_writepack {
|
|
166
167
|
|
167
168
|
static int packfile_sort__cb(const void *a_, const void *b_);
|
168
169
|
|
169
|
-
static int packfile_load__cb(void *_data,
|
170
|
+
static int packfile_load__cb(void *_data, git_str *path);
|
170
171
|
|
171
172
|
static int packfile_byname_search_cmp(const void *path, const void *pack_entry);
|
172
173
|
|
@@ -177,7 +178,7 @@ static int pack_entry_find(struct git_pack_entry *e,
|
|
177
178
|
* a prefix of an identifier.
|
178
179
|
* Sets GIT_EAMBIGUOUS if short oid is ambiguous.
|
179
180
|
* This method assumes that len is between
|
180
|
-
* GIT_OID_MINPREFIXLEN and
|
181
|
+
* GIT_OID_MINPREFIXLEN and the hexsize for the hash type.
|
181
182
|
*/
|
182
183
|
static int pack_entry_find_prefix(
|
183
184
|
struct git_pack_entry *e,
|
@@ -195,10 +196,10 @@ static int pack_entry_find_prefix(
|
|
195
196
|
|
196
197
|
static int packfile_byname_search_cmp(const void *path_, const void *p_)
|
197
198
|
{
|
198
|
-
const
|
199
|
+
const git_str *path = (const git_str *)path_;
|
199
200
|
const struct git_pack_file *p = (const struct git_pack_file *)p_;
|
200
201
|
|
201
|
-
return strncmp(p->pack_name,
|
202
|
+
return strncmp(p->pack_name, git_str_cstr(path), git_str_len(path));
|
202
203
|
}
|
203
204
|
|
204
205
|
static int packfile_sort__cb(const void *a_, const void *b_)
|
@@ -231,27 +232,27 @@ static int packfile_sort__cb(const void *a_, const void *b_)
|
|
231
232
|
}
|
232
233
|
|
233
234
|
|
234
|
-
static int packfile_load__cb(void *data,
|
235
|
+
static int packfile_load__cb(void *data, git_str *path)
|
235
236
|
{
|
236
237
|
struct pack_backend *backend = data;
|
237
238
|
struct git_pack_file *pack;
|
238
|
-
const char *path_str =
|
239
|
-
|
240
|
-
size_t cmp_len =
|
239
|
+
const char *path_str = git_str_cstr(path);
|
240
|
+
git_str index_prefix = GIT_STR_INIT;
|
241
|
+
size_t cmp_len = git_str_len(path);
|
241
242
|
int error;
|
242
243
|
|
243
244
|
if (cmp_len <= strlen(".idx") || git__suffixcmp(path_str, ".idx") != 0)
|
244
245
|
return 0; /* not an index */
|
245
246
|
|
246
247
|
cmp_len -= strlen(".idx");
|
247
|
-
|
248
|
+
git_str_attach_notowned(&index_prefix, path_str, cmp_len);
|
248
249
|
|
249
250
|
if (git_vector_search2(NULL, &backend->midx_packs, packfile_byname_search_cmp, &index_prefix) == 0)
|
250
251
|
return 0;
|
251
252
|
if (git_vector_search2(NULL, &backend->packs, packfile_byname_search_cmp, &index_prefix) == 0)
|
252
253
|
return 0;
|
253
254
|
|
254
|
-
error = git_mwindow_get_pack(&pack, path->ptr);
|
255
|
+
error = git_mwindow_get_pack(&pack, path->ptr, backend->opts.oid_type);
|
255
256
|
|
256
257
|
/* ignore missing .pack file as git does */
|
257
258
|
if (error == GIT_ENOTFOUND) {
|
@@ -270,33 +271,34 @@ static int pack_entry_find(struct git_pack_entry *e, struct pack_backend *backen
|
|
270
271
|
{
|
271
272
|
struct git_pack_file *last_found = backend->last_found, *p;
|
272
273
|
git_midx_entry midx_entry;
|
274
|
+
size_t oid_hexsize = git_oid_hexsize(backend->opts.oid_type);
|
273
275
|
size_t i;
|
274
276
|
|
275
277
|
if (backend->midx &&
|
276
|
-
git_midx_entry_find(&midx_entry, backend->midx, oid,
|
278
|
+
git_midx_entry_find(&midx_entry, backend->midx, oid, oid_hexsize) == 0 &&
|
277
279
|
midx_entry.pack_index < git_vector_length(&backend->midx_packs)) {
|
278
280
|
e->offset = midx_entry.offset;
|
279
|
-
git_oid_cpy(&e->
|
281
|
+
git_oid_cpy(&e->id, &midx_entry.sha1);
|
280
282
|
e->p = git_vector_get(&backend->midx_packs, midx_entry.pack_index);
|
281
283
|
return 0;
|
282
284
|
}
|
283
285
|
|
284
286
|
if (last_found &&
|
285
|
-
git_pack_entry_find(e, last_found, oid,
|
287
|
+
git_pack_entry_find(e, last_found, oid, oid_hexsize) == 0)
|
286
288
|
return 0;
|
287
289
|
|
288
290
|
git_vector_foreach(&backend->packs, i, p) {
|
289
291
|
if (p == last_found)
|
290
292
|
continue;
|
291
293
|
|
292
|
-
if (git_pack_entry_find(e, p, oid,
|
294
|
+
if (git_pack_entry_find(e, p, oid, oid_hexsize) == 0) {
|
293
295
|
backend->last_found = p;
|
294
296
|
return 0;
|
295
297
|
}
|
296
298
|
}
|
297
299
|
|
298
300
|
return git_odb__error_notfound(
|
299
|
-
"failed to find pack entry", oid,
|
301
|
+
"failed to find pack entry", oid, oid_hexsize);
|
300
302
|
}
|
301
303
|
|
302
304
|
static int pack_entry_find_prefix(
|
@@ -307,20 +309,26 @@ static int pack_entry_find_prefix(
|
|
307
309
|
{
|
308
310
|
int error;
|
309
311
|
size_t i;
|
310
|
-
git_oid found_full_oid
|
312
|
+
git_oid found_full_oid;
|
311
313
|
bool found = false;
|
312
314
|
struct git_pack_file *last_found = backend->last_found, *p;
|
313
315
|
git_midx_entry midx_entry;
|
314
316
|
|
317
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
318
|
+
git_oid_clear(&found_full_oid, short_oid->type);
|
319
|
+
#else
|
320
|
+
git_oid_clear(&found_full_oid, GIT_OID_SHA1);
|
321
|
+
#endif
|
322
|
+
|
315
323
|
if (backend->midx) {
|
316
324
|
error = git_midx_entry_find(&midx_entry, backend->midx, short_oid, len);
|
317
325
|
if (error == GIT_EAMBIGUOUS)
|
318
326
|
return error;
|
319
327
|
if (!error && midx_entry.pack_index < git_vector_length(&backend->midx_packs)) {
|
320
328
|
e->offset = midx_entry.offset;
|
321
|
-
git_oid_cpy(&e->
|
329
|
+
git_oid_cpy(&e->id, &midx_entry.sha1);
|
322
330
|
e->p = git_vector_get(&backend->midx_packs, midx_entry.pack_index);
|
323
|
-
git_oid_cpy(&found_full_oid, &e->
|
331
|
+
git_oid_cpy(&found_full_oid, &e->id);
|
324
332
|
found = true;
|
325
333
|
}
|
326
334
|
}
|
@@ -330,9 +338,9 @@ static int pack_entry_find_prefix(
|
|
330
338
|
if (error == GIT_EAMBIGUOUS)
|
331
339
|
return error;
|
332
340
|
if (!error) {
|
333
|
-
if (found && git_oid_cmp(&e->
|
341
|
+
if (found && git_oid_cmp(&e->id, &found_full_oid))
|
334
342
|
return git_odb__error_ambiguous("found multiple pack entries");
|
335
|
-
git_oid_cpy(&found_full_oid, &e->
|
343
|
+
git_oid_cpy(&found_full_oid, &e->id);
|
336
344
|
found = true;
|
337
345
|
}
|
338
346
|
}
|
@@ -345,9 +353,9 @@ static int pack_entry_find_prefix(
|
|
345
353
|
if (error == GIT_EAMBIGUOUS)
|
346
354
|
return error;
|
347
355
|
if (!error) {
|
348
|
-
if (found && git_oid_cmp(&e->
|
356
|
+
if (found && git_oid_cmp(&e->id, &found_full_oid))
|
349
357
|
return git_odb__error_ambiguous("found multiple pack entries");
|
350
|
-
git_oid_cpy(&found_full_oid, &e->
|
358
|
+
git_oid_cpy(&found_full_oid, &e->id);
|
351
359
|
found = true;
|
352
360
|
backend->last_found = p;
|
353
361
|
}
|
@@ -404,29 +412,32 @@ static int process_multi_pack_index_pack(
|
|
404
412
|
int error;
|
405
413
|
struct git_pack_file *pack;
|
406
414
|
size_t found_position;
|
407
|
-
|
415
|
+
git_str pack_path = GIT_STR_INIT, index_prefix = GIT_STR_INIT;
|
408
416
|
|
409
|
-
error =
|
417
|
+
error = git_str_joinpath(&pack_path, backend->pack_folder, packfile_name);
|
410
418
|
if (error < 0)
|
411
419
|
return error;
|
412
420
|
|
413
421
|
/* This is ensured by midx_parse_packfile_name() */
|
414
|
-
if (
|
422
|
+
if (git_str_len(&pack_path) <= strlen(".idx") || git__suffixcmp(git_str_cstr(&pack_path), ".idx") != 0)
|
415
423
|
return git_odb__error_notfound("midx file contained a non-index", NULL, 0);
|
416
424
|
|
417
|
-
|
425
|
+
git_str_attach_notowned(&index_prefix, git_str_cstr(&pack_path), git_str_len(&pack_path) - strlen(".idx"));
|
418
426
|
|
419
427
|
if (git_vector_search2(&found_position, &backend->packs, packfile_byname_search_cmp, &index_prefix) == 0) {
|
420
428
|
/* Pack was found in the packs list. Moving it to the midx_packs list. */
|
421
|
-
|
429
|
+
git_str_dispose(&pack_path);
|
422
430
|
git_vector_set(NULL, &backend->midx_packs, i, git_vector_get(&backend->packs, found_position));
|
423
431
|
git_vector_remove(&backend->packs, found_position);
|
424
432
|
return 0;
|
425
433
|
}
|
426
434
|
|
427
435
|
/* Pack was not found. Allocate a new one. */
|
428
|
-
error = git_mwindow_get_pack(
|
429
|
-
|
436
|
+
error = git_mwindow_get_pack(
|
437
|
+
&pack,
|
438
|
+
git_str_cstr(&pack_path),
|
439
|
+
backend->opts.oid_type);
|
440
|
+
git_str_dispose(&pack_path);
|
430
441
|
if (error < 0)
|
431
442
|
return error;
|
432
443
|
|
@@ -442,11 +453,11 @@ static int process_multi_pack_index_pack(
|
|
442
453
|
static int refresh_multi_pack_index(struct pack_backend *backend)
|
443
454
|
{
|
444
455
|
int error;
|
445
|
-
|
456
|
+
git_str midx_path = GIT_STR_INIT;
|
446
457
|
const char *packfile_name;
|
447
458
|
size_t i;
|
448
459
|
|
449
|
-
error =
|
460
|
+
error = git_str_joinpath(&midx_path, backend->pack_folder, "multi-pack-index");
|
450
461
|
if (error < 0)
|
451
462
|
return error;
|
452
463
|
|
@@ -457,19 +468,21 @@ static int refresh_multi_pack_index(struct pack_backend *backend)
|
|
457
468
|
* refreshing the new multi-pack-index fails, or the file is deleted.
|
458
469
|
*/
|
459
470
|
if (backend->midx) {
|
460
|
-
if (!git_midx_needs_refresh(backend->midx,
|
461
|
-
|
471
|
+
if (!git_midx_needs_refresh(backend->midx, git_str_cstr(&midx_path))) {
|
472
|
+
git_str_dispose(&midx_path);
|
462
473
|
return 0;
|
463
474
|
}
|
464
475
|
error = remove_multi_pack_index(backend);
|
465
476
|
if (error < 0) {
|
466
|
-
|
477
|
+
git_str_dispose(&midx_path);
|
467
478
|
return error;
|
468
479
|
}
|
469
480
|
}
|
470
481
|
|
471
|
-
error = git_midx_open(&backend->midx,
|
472
|
-
|
482
|
+
error = git_midx_open(&backend->midx, git_str_cstr(&midx_path),
|
483
|
+
backend->opts.oid_type);
|
484
|
+
|
485
|
+
git_str_dispose(&midx_path);
|
473
486
|
if (error < 0)
|
474
487
|
return error;
|
475
488
|
|
@@ -505,7 +518,7 @@ static int pack_backend__refresh(git_odb_backend *backend_)
|
|
505
518
|
{
|
506
519
|
int error;
|
507
520
|
struct stat st;
|
508
|
-
|
521
|
+
git_str path = GIT_STR_INIT;
|
509
522
|
struct pack_backend *backend = (struct pack_backend *)backend_;
|
510
523
|
|
511
524
|
if (backend->pack_folder == NULL)
|
@@ -523,10 +536,10 @@ static int pack_backend__refresh(git_odb_backend *backend_)
|
|
523
536
|
}
|
524
537
|
|
525
538
|
/* reload all packs */
|
526
|
-
|
527
|
-
error =
|
539
|
+
git_str_sets(&path, backend->pack_folder);
|
540
|
+
error = git_fs_path_direach(&path, 0, packfile_load__cb, backend);
|
528
541
|
|
529
|
-
|
542
|
+
git_str_dispose(&path);
|
530
543
|
git_vector_sort(&backend->packs);
|
531
544
|
|
532
545
|
return error;
|
@@ -596,32 +609,33 @@ static int pack_backend__read_prefix(
|
|
596
609
|
void **buffer_p,
|
597
610
|
size_t *len_p,
|
598
611
|
git_object_t *type_p,
|
599
|
-
git_odb_backend *
|
612
|
+
git_odb_backend *_backend,
|
600
613
|
const git_oid *short_oid,
|
601
614
|
size_t len)
|
602
615
|
{
|
616
|
+
struct pack_backend *backend = (struct pack_backend *)_backend;
|
603
617
|
int error = 0;
|
604
618
|
|
605
619
|
if (len < GIT_OID_MINPREFIXLEN)
|
606
620
|
error = git_odb__error_ambiguous("prefix length too short");
|
607
621
|
|
608
|
-
else if (len >=
|
622
|
+
else if (len >= git_oid_hexsize(backend->opts.oid_type)) {
|
609
623
|
/* We can fall back to regular read method */
|
610
|
-
error = pack_backend__read(buffer_p, len_p, type_p,
|
624
|
+
error = pack_backend__read(buffer_p, len_p, type_p, _backend, short_oid);
|
611
625
|
if (!error)
|
612
626
|
git_oid_cpy(out_oid, short_oid);
|
613
627
|
} else {
|
614
628
|
struct git_pack_entry e;
|
615
629
|
git_rawobj raw = {NULL};
|
616
630
|
|
617
|
-
if ((error = pack_entry_find_prefix(
|
618
|
-
|
619
|
-
|
631
|
+
if ((error = pack_entry_find_prefix(&e,
|
632
|
+
backend, short_oid, len)) == 0 &&
|
633
|
+
(error = git_packfile_unpack(&raw, e.p, &e.offset)) == 0)
|
620
634
|
{
|
621
635
|
*buffer_p = raw.data;
|
622
636
|
*len_p = raw.len;
|
623
637
|
*type_p = raw.type;
|
624
|
-
git_oid_cpy(out_oid, &e.
|
638
|
+
git_oid_cpy(out_oid, &e.id);
|
625
639
|
}
|
626
640
|
}
|
627
641
|
|
@@ -642,7 +656,7 @@ static int pack_backend__exists_prefix(
|
|
642
656
|
struct git_pack_entry e = {0};
|
643
657
|
|
644
658
|
error = pack_entry_find_prefix(&e, pb, short_id, len);
|
645
|
-
git_oid_cpy(out, &e.
|
659
|
+
git_oid_cpy(out, &e.id);
|
646
660
|
return error;
|
647
661
|
}
|
648
662
|
|
@@ -712,6 +726,7 @@ static int pack_backend__writepack(struct git_odb_writepack **out,
|
|
712
726
|
git_indexer_options opts = GIT_INDEXER_OPTIONS_INIT;
|
713
727
|
struct pack_backend *backend;
|
714
728
|
struct pack_writepack *writepack;
|
729
|
+
int error;
|
715
730
|
|
716
731
|
GIT_ASSERT_ARG(out);
|
717
732
|
GIT_ASSERT_ARG(_backend);
|
@@ -726,11 +741,20 @@ static int pack_backend__writepack(struct git_odb_writepack **out,
|
|
726
741
|
writepack = git__calloc(1, sizeof(struct pack_writepack));
|
727
742
|
GIT_ERROR_CHECK_ALLOC(writepack);
|
728
743
|
|
729
|
-
|
730
|
-
|
731
|
-
|
744
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
745
|
+
opts.odb = odb;
|
746
|
+
opts.oid_type = backend->opts.oid_type;
|
747
|
+
|
748
|
+
error = git_indexer_new(&writepack->indexer,
|
749
|
+
backend->pack_folder,
|
750
|
+
&opts);
|
751
|
+
#else
|
752
|
+
error = git_indexer_new(&writepack->indexer,
|
753
|
+
backend->pack_folder, 0, odb, &opts);
|
754
|
+
#endif
|
755
|
+
|
756
|
+
if (error < 0)
|
732
757
|
return -1;
|
733
|
-
}
|
734
758
|
|
735
759
|
writepack->parent.backend = _backend;
|
736
760
|
writepack->parent.append = pack_backend__writepack_append;
|
@@ -743,21 +767,21 @@ static int pack_backend__writepack(struct git_odb_writepack **out,
|
|
743
767
|
}
|
744
768
|
|
745
769
|
static int get_idx_path(
|
746
|
-
|
770
|
+
git_str *idx_path,
|
747
771
|
struct pack_backend *backend,
|
748
772
|
struct git_pack_file *p)
|
749
773
|
{
|
750
774
|
size_t path_len;
|
751
775
|
int error;
|
752
776
|
|
753
|
-
error =
|
777
|
+
error = git_fs_path_prettify(idx_path, p->pack_name, backend->pack_folder);
|
754
778
|
if (error < 0)
|
755
779
|
return error;
|
756
|
-
path_len =
|
757
|
-
if (path_len <= strlen(".pack") || git__suffixcmp(
|
780
|
+
path_len = git_str_len(idx_path);
|
781
|
+
if (path_len <= strlen(".pack") || git__suffixcmp(git_str_cstr(idx_path), ".pack") != 0)
|
758
782
|
return git_odb__error_notfound("packfile does not end in .pack", NULL, 0);
|
759
783
|
path_len -= strlen(".pack");
|
760
|
-
error =
|
784
|
+
error = git_str_splice(idx_path, path_len, strlen(".pack"), ".idx", strlen(".idx"));
|
761
785
|
if (error < 0)
|
762
786
|
return error;
|
763
787
|
|
@@ -772,31 +796,44 @@ static int pack_backend__writemidx(git_odb_backend *_backend)
|
|
772
796
|
size_t i;
|
773
797
|
int error = 0;
|
774
798
|
|
799
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
800
|
+
git_midx_writer_options midx_opts = GIT_MIDX_WRITER_OPTIONS_INIT;
|
801
|
+
#endif
|
802
|
+
|
775
803
|
GIT_ASSERT_ARG(_backend);
|
776
804
|
|
777
805
|
backend = (struct pack_backend *)_backend;
|
778
806
|
|
779
|
-
|
807
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
808
|
+
midx_opts.oid_type = backend->opts.oid_type;
|
809
|
+
#endif
|
810
|
+
|
811
|
+
error = git_midx_writer_new(&w, backend->pack_folder
|
812
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
813
|
+
, &midx_opts
|
814
|
+
#endif
|
815
|
+
);
|
816
|
+
|
780
817
|
if (error < 0)
|
781
818
|
return error;
|
782
819
|
|
783
820
|
git_vector_foreach(&backend->midx_packs, i, p) {
|
784
|
-
|
821
|
+
git_str idx_path = GIT_STR_INIT;
|
785
822
|
error = get_idx_path(&idx_path, backend, p);
|
786
823
|
if (error < 0)
|
787
824
|
goto cleanup;
|
788
|
-
error = git_midx_writer_add(w,
|
789
|
-
|
825
|
+
error = git_midx_writer_add(w, git_str_cstr(&idx_path));
|
826
|
+
git_str_dispose(&idx_path);
|
790
827
|
if (error < 0)
|
791
828
|
goto cleanup;
|
792
829
|
}
|
793
830
|
git_vector_foreach(&backend->packs, i, p) {
|
794
|
-
|
831
|
+
git_str idx_path = GIT_STR_INIT;
|
795
832
|
error = get_idx_path(&idx_path, backend, p);
|
796
833
|
if (error < 0)
|
797
834
|
goto cleanup;
|
798
|
-
error = git_midx_writer_add(w,
|
799
|
-
|
835
|
+
error = git_midx_writer_add(w, git_str_cstr(&idx_path));
|
836
|
+
git_str_dispose(&idx_path);
|
800
837
|
if (error < 0)
|
801
838
|
goto cleanup;
|
802
839
|
}
|
@@ -834,13 +871,16 @@ static void pack_backend__free(git_odb_backend *_backend)
|
|
834
871
|
git_mwindow_put_pack(p);
|
835
872
|
|
836
873
|
git_midx_free(backend->midx);
|
837
|
-
|
838
|
-
|
874
|
+
git_vector_dispose(&backend->midx_packs);
|
875
|
+
git_vector_dispose(&backend->packs);
|
839
876
|
git__free(backend->pack_folder);
|
840
877
|
git__free(backend);
|
841
878
|
}
|
842
879
|
|
843
|
-
static int pack_backend__alloc(
|
880
|
+
static int pack_backend__alloc(
|
881
|
+
struct pack_backend **out,
|
882
|
+
size_t initial_size,
|
883
|
+
const git_odb_backend_pack_options *opts)
|
844
884
|
{
|
845
885
|
struct pack_backend *backend = git__calloc(1, sizeof(struct pack_backend));
|
846
886
|
GIT_ERROR_CHECK_ALLOC(backend);
|
@@ -849,12 +889,19 @@ static int pack_backend__alloc(struct pack_backend **out, size_t initial_size)
|
|
849
889
|
git__free(backend);
|
850
890
|
return -1;
|
851
891
|
}
|
892
|
+
|
852
893
|
if (git_vector_init(&backend->packs, initial_size, packfile_sort__cb) < 0) {
|
853
|
-
|
894
|
+
git_vector_dispose(&backend->midx_packs);
|
854
895
|
git__free(backend);
|
855
896
|
return -1;
|
856
897
|
}
|
857
898
|
|
899
|
+
if (opts)
|
900
|
+
memcpy(&backend->opts, opts, sizeof(git_odb_backend_pack_options));
|
901
|
+
|
902
|
+
if (!backend->opts.oid_type)
|
903
|
+
backend->opts.oid_type = GIT_OID_DEFAULT;
|
904
|
+
|
858
905
|
backend->parent.version = GIT_ODB_BACKEND_VERSION;
|
859
906
|
|
860
907
|
backend->parent.read = &pack_backend__read;
|
@@ -873,17 +920,31 @@ static int pack_backend__alloc(struct pack_backend **out, size_t initial_size)
|
|
873
920
|
return 0;
|
874
921
|
}
|
875
922
|
|
876
|
-
|
923
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
924
|
+
int git_odb_backend_one_pack(
|
925
|
+
git_odb_backend **backend_out,
|
926
|
+
const char *idx,
|
927
|
+
const git_odb_backend_pack_options *opts)
|
928
|
+
#else
|
929
|
+
int git_odb_backend_one_pack(
|
930
|
+
git_odb_backend **backend_out,
|
931
|
+
const char *idx)
|
932
|
+
#endif
|
877
933
|
{
|
878
934
|
struct pack_backend *backend = NULL;
|
879
935
|
struct git_pack_file *packfile = NULL;
|
880
936
|
|
881
|
-
|
937
|
+
#ifndef GIT_EXPERIMENTAL_SHA256
|
938
|
+
git_odb_backend_pack_options *opts = NULL;
|
939
|
+
#endif
|
940
|
+
|
941
|
+
git_oid_t oid_type = opts ? opts->oid_type : 0;
|
942
|
+
|
943
|
+
if (pack_backend__alloc(&backend, 1, opts) < 0)
|
882
944
|
return -1;
|
883
945
|
|
884
|
-
if (git_mwindow_get_pack(&packfile, idx) < 0 ||
|
885
|
-
|
886
|
-
{
|
946
|
+
if (git_mwindow_get_pack(&packfile, idx, oid_type) < 0 ||
|
947
|
+
git_vector_insert(&backend->packs, packfile) < 0) {
|
887
948
|
pack_backend__free((git_odb_backend *)backend);
|
888
949
|
return -1;
|
889
950
|
}
|
@@ -892,19 +953,31 @@ int git_odb_backend_one_pack(git_odb_backend **backend_out, const char *idx)
|
|
892
953
|
return 0;
|
893
954
|
}
|
894
955
|
|
895
|
-
|
956
|
+
#ifdef GIT_EXPERIMENTAL_SHA256
|
957
|
+
int git_odb_backend_pack(
|
958
|
+
git_odb_backend **backend_out,
|
959
|
+
const char *objects_dir,
|
960
|
+
const git_odb_backend_pack_options *opts)
|
961
|
+
#else
|
962
|
+
int git_odb_backend_pack(
|
963
|
+
git_odb_backend **backend_out,
|
964
|
+
const char *objects_dir)
|
965
|
+
#endif
|
896
966
|
{
|
897
967
|
int error = 0;
|
898
968
|
struct pack_backend *backend = NULL;
|
899
|
-
|
969
|
+
git_str path = GIT_STR_INIT;
|
970
|
+
|
971
|
+
#ifndef GIT_EXPERIMENTAL_SHA256
|
972
|
+
git_odb_backend_pack_options *opts = NULL;
|
973
|
+
#endif
|
900
974
|
|
901
|
-
if (pack_backend__alloc(&backend, 8) < 0)
|
975
|
+
if (pack_backend__alloc(&backend, 8, opts) < 0)
|
902
976
|
return -1;
|
903
977
|
|
904
|
-
if (!(error =
|
905
|
-
|
906
|
-
|
907
|
-
backend->pack_folder = git_buf_detach(&path);
|
978
|
+
if (!(error = git_str_joinpath(&path, objects_dir, "pack")) &&
|
979
|
+
git_fs_path_isdir(git_str_cstr(&path))) {
|
980
|
+
backend->pack_folder = git_str_detach(&path);
|
908
981
|
error = pack_backend__refresh((git_odb_backend *)backend);
|
909
982
|
}
|
910
983
|
|
@@ -915,7 +988,7 @@ int git_odb_backend_pack(git_odb_backend **backend_out, const char *objects_dir)
|
|
915
988
|
|
916
989
|
*backend_out = (git_odb_backend *)backend;
|
917
990
|
|
918
|
-
|
991
|
+
git_str_dispose(&path);
|
919
992
|
|
920
993
|
return error;
|
921
994
|
}
|