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
@@ -16,9 +16,9 @@
|
|
16
16
|
#include "map.h"
|
17
17
|
#include "mwindow.h"
|
18
18
|
#include "odb.h"
|
19
|
-
#include "offmap.h"
|
20
|
-
#include "oidmap.h"
|
21
19
|
#include "zstream.h"
|
20
|
+
#include "oid.h"
|
21
|
+
#include "hashmap_oid.h"
|
22
22
|
|
23
23
|
/**
|
24
24
|
* Function type for callbacks from git_pack_foreach_entry_offset.
|
@@ -32,7 +32,7 @@ typedef int git_pack_foreach_entry_offset_cb(
|
|
32
32
|
|
33
33
|
#define PACK_SIGNATURE 0x5041434b /* "PACK" */
|
34
34
|
#define PACK_VERSION 2
|
35
|
-
#define pack_version_ok(v) ((v) == htonl(2)
|
35
|
+
#define pack_version_ok(v) ((v) == htonl(2))
|
36
36
|
struct git_pack_header {
|
37
37
|
uint32_t hdr_signature;
|
38
38
|
uint32_t hdr_version;
|
@@ -82,12 +82,23 @@ typedef git_array_t(struct pack_chain_elem) git_dependency_chain;
|
|
82
82
|
#define GIT_PACK_CACHE_MEMORY_LIMIT 16 * 1024 * 1024
|
83
83
|
#define GIT_PACK_CACHE_SIZE_LIMIT 1024 * 1024 /* don't bother caching anything over 1MB */
|
84
84
|
|
85
|
+
struct git_pack_entry {
|
86
|
+
off64_t offset;
|
87
|
+
git_oid id;
|
88
|
+
struct git_pack_file *p;
|
89
|
+
};
|
90
|
+
|
91
|
+
GIT_HASHMAP_STRUCT(git_pack_offsetmap, off64_t, git_pack_cache_entry *);
|
92
|
+
|
93
|
+
GIT_HASHMAP_OID_STRUCT(git_pack_oidmap, struct git_pack_entry *);
|
94
|
+
GIT_HASHMAP_OID_PROTOTYPES(git_pack_oidmap, struct git_pack_entry *);
|
95
|
+
|
85
96
|
typedef struct {
|
86
97
|
size_t memory_used;
|
87
98
|
size_t memory_limit;
|
88
99
|
size_t use_ctr;
|
89
100
|
git_mutex lock;
|
90
|
-
|
101
|
+
git_pack_offsetmap entries;
|
91
102
|
} git_pack_cache;
|
92
103
|
|
93
104
|
struct git_pack_file {
|
@@ -98,13 +109,20 @@ struct git_pack_file {
|
|
98
109
|
|
99
110
|
uint32_t num_objects;
|
100
111
|
uint32_t num_bad_objects;
|
101
|
-
git_oid *
|
112
|
+
git_oid *bad_object_ids; /* array of git_oid */
|
113
|
+
|
114
|
+
git_oid_t oid_type;
|
115
|
+
unsigned oid_hexsize:7,
|
116
|
+
oid_size:6,
|
117
|
+
pack_local:1,
|
118
|
+
pack_keep:1,
|
119
|
+
has_cache:1;
|
102
120
|
|
103
121
|
int index_version;
|
104
122
|
git_time_t mtime;
|
105
|
-
|
106
|
-
|
107
|
-
|
123
|
+
|
124
|
+
git_pack_oidmap idx_cache;
|
125
|
+
unsigned char **ids;
|
108
126
|
|
109
127
|
git_pack_cache bases; /* delta base cache */
|
110
128
|
|
@@ -115,23 +133,22 @@ struct git_pack_file {
|
|
115
133
|
};
|
116
134
|
|
117
135
|
/**
|
118
|
-
* Return the position where an OID (or a prefix) would be inserted within
|
119
|
-
* OID Lookup Table of an .idx file. This performs binary search
|
120
|
-
* and hi indices.
|
136
|
+
* Return the position where an OID (or a prefix) would be inserted within
|
137
|
+
* the OID Lookup Table of an .idx file. This performs binary search
|
138
|
+
* between the lo and hi indices.
|
121
139
|
*
|
122
|
-
* The stride parameter is provided because .idx files version 1 store the
|
123
|
-
* interleaved with the 4-byte file offsets of the objects within the
|
124
|
-
* file (stride =
|
125
|
-
* flat array (stride =
|
140
|
+
* The stride parameter is provided because .idx files version 1 store the
|
141
|
+
* OIDs interleaved with the 4-byte file offsets of the objects within the
|
142
|
+
* .pack file (stride = oid_size + 4), whereas files with version 2 store
|
143
|
+
* them in a contiguous flat array (stride = oid_size).
|
126
144
|
*/
|
127
|
-
int
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
};
|
145
|
+
int git_pack__lookup_id(
|
146
|
+
const void *id_lookup_table,
|
147
|
+
size_t stride,
|
148
|
+
unsigned lo,
|
149
|
+
unsigned hi,
|
150
|
+
const unsigned char *id_prefix,
|
151
|
+
const git_oid_t oid_type);
|
135
152
|
|
136
153
|
typedef struct git_packfile_stream {
|
137
154
|
off64_t curpos;
|
@@ -173,12 +190,15 @@ int get_delta_base(
|
|
173
190
|
off64_t delta_obj_offset);
|
174
191
|
|
175
192
|
void git_packfile_free(struct git_pack_file *p, bool unlink_packfile);
|
176
|
-
int git_packfile_alloc(
|
193
|
+
int git_packfile_alloc(
|
194
|
+
struct git_pack_file **pack_out,
|
195
|
+
const char *path,
|
196
|
+
git_oid_t oid_type);
|
177
197
|
|
178
198
|
int git_pack_entry_find(
|
179
199
|
struct git_pack_entry *e,
|
180
200
|
struct git_pack_file *p,
|
181
|
-
const git_oid *
|
201
|
+
const git_oid *short_id,
|
182
202
|
size_t len);
|
183
203
|
int git_pack_foreach_entry(
|
184
204
|
struct git_pack_file *p,
|
@@ -5,6 +5,7 @@
|
|
5
5
|
* a Linking Exception. For full terms see the included COPYING file.
|
6
6
|
*/
|
7
7
|
#include "parse.h"
|
8
|
+
#include "oid.h"
|
8
9
|
|
9
10
|
int git_parse_ctx_init(git_parse_ctx *ctx, const char *content, size_t content_len)
|
10
11
|
{
|
@@ -101,13 +102,16 @@ int git_parse_advance_digit(int64_t *out, git_parse_ctx *ctx, int base)
|
|
101
102
|
return 0;
|
102
103
|
}
|
103
104
|
|
104
|
-
int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx)
|
105
|
+
int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx, git_oid_t oid_type)
|
105
106
|
{
|
106
|
-
|
107
|
+
size_t oid_hexsize = git_oid_hexsize(oid_type);
|
108
|
+
GIT_ASSERT(oid_hexsize);
|
109
|
+
|
110
|
+
if (ctx->line_len < oid_hexsize)
|
107
111
|
return -1;
|
108
|
-
if ((
|
112
|
+
if ((git_oid__fromstrn(out, ctx->line, oid_hexsize, oid_type)) < 0)
|
109
113
|
return -1;
|
110
|
-
git_parse_advance_chars(ctx,
|
114
|
+
git_parse_advance_chars(ctx, oid_hexsize);
|
111
115
|
return 0;
|
112
116
|
}
|
113
117
|
|
@@ -50,7 +50,7 @@ int git_parse_advance_expected(
|
|
50
50
|
int git_parse_advance_ws(git_parse_ctx *ctx);
|
51
51
|
int git_parse_advance_nl(git_parse_ctx *ctx);
|
52
52
|
int git_parse_advance_digit(int64_t *out, git_parse_ctx *ctx, int base);
|
53
|
-
int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx);
|
53
|
+
int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx, git_oid_t oid_type);
|
54
54
|
|
55
55
|
enum GIT_PARSE_PEEK_FLAGS {
|
56
56
|
GIT_PARSE_PEEK_SKIP_WHITESPACE = (1 << 0)
|
@@ -76,15 +76,15 @@ size_t git_patch_size(
|
|
76
76
|
out += patch->header_size;
|
77
77
|
|
78
78
|
if (include_file_headers) {
|
79
|
-
|
79
|
+
git_str file_header = GIT_STR_INIT;
|
80
80
|
|
81
81
|
if (git_diff_delta__format_file_header(
|
82
82
|
&file_header, patch->delta, NULL, NULL, 0, true) < 0)
|
83
83
|
git_error_clear();
|
84
84
|
else
|
85
|
-
out +=
|
85
|
+
out += git_str_len(&file_header);
|
86
86
|
|
87
|
-
|
87
|
+
git_str_dispose(&file_header);
|
88
88
|
}
|
89
89
|
|
90
90
|
return out;
|
@@ -59,10 +59,17 @@ typedef struct {
|
|
59
59
|
* This prefix will be removed when looking for files. The default is 1.
|
60
60
|
*/
|
61
61
|
uint32_t prefix_len;
|
62
|
+
|
63
|
+
/**
|
64
|
+
* The type of object IDs in the patch file. The default is
|
65
|
+
* `GIT_OID_DEFAULT`.
|
66
|
+
*/
|
67
|
+
git_oid_t oid_type;
|
62
68
|
} git_patch_options;
|
63
69
|
|
64
|
-
#define GIT_PATCH_OPTIONS_INIT { 1 }
|
70
|
+
#define GIT_PATCH_OPTIONS_INIT { 1, GIT_OID_DEFAULT }
|
65
71
|
|
72
|
+
extern int git_patch__to_buf(git_str *out, git_patch *patch);
|
66
73
|
extern void git_patch_free(git_patch *patch);
|
67
74
|
|
68
75
|
#endif
|
@@ -81,7 +81,8 @@ static void patch_generated_init_common(git_patch_generated *patch)
|
|
81
81
|
|
82
82
|
static int patch_generated_normalize_options(
|
83
83
|
git_diff_options *out,
|
84
|
-
const git_diff_options *opts
|
84
|
+
const git_diff_options *opts,
|
85
|
+
git_repository *repo)
|
85
86
|
{
|
86
87
|
if (opts) {
|
87
88
|
GIT_ERROR_CHECK_VERSION(opts, GIT_DIFF_OPTIONS_VERSION, "git_diff_options");
|
@@ -91,6 +92,23 @@ static int patch_generated_normalize_options(
|
|
91
92
|
memcpy(out, &default_opts, sizeof(git_diff_options));
|
92
93
|
}
|
93
94
|
|
95
|
+
if (repo && opts && opts->oid_type && repo->oid_type != opts->oid_type) {
|
96
|
+
/*
|
97
|
+
* This limitation feels unnecessary - we should consider
|
98
|
+
* allowing users to generate diffs with a different object
|
99
|
+
* ID format than the repository.
|
100
|
+
*/
|
101
|
+
git_error_set(GIT_ERROR_INVALID,
|
102
|
+
"specified object ID type does not match repository object ID type");
|
103
|
+
return -1;
|
104
|
+
} else if (repo) {
|
105
|
+
out->oid_type = repo->oid_type;
|
106
|
+
} else if (opts && opts->oid_type) {
|
107
|
+
out->oid_type = opts->oid_type;
|
108
|
+
} else {
|
109
|
+
out->oid_type = GIT_OID_DEFAULT;
|
110
|
+
}
|
111
|
+
|
94
112
|
out->old_prefix = opts && opts->old_prefix ?
|
95
113
|
git__strdup(opts->old_prefix) :
|
96
114
|
git__strdup(DIFF_OLD_PREFIX_DEFAULT);
|
@@ -118,7 +136,7 @@ static int patch_generated_init(
|
|
118
136
|
patch->delta_index = delta_index;
|
119
137
|
|
120
138
|
if ((error = patch_generated_normalize_options(
|
121
|
-
&patch->base.diff_opts, &diff->opts)) < 0 ||
|
139
|
+
&patch->base.diff_opts, &diff->opts, diff->repo)) < 0 ||
|
122
140
|
(error = git_diff_file_content__init_from_diff(
|
123
141
|
&patch->ofile, diff, patch->base.delta, true)) < 0 ||
|
124
142
|
(error = git_diff_file_content__init_from_diff(
|
@@ -261,7 +279,7 @@ static int create_binary(
|
|
261
279
|
const char *b_data,
|
262
280
|
size_t b_datalen)
|
263
281
|
{
|
264
|
-
|
282
|
+
git_str deflate = GIT_STR_INIT, delta = GIT_STR_INIT;
|
265
283
|
size_t delta_data_len = 0;
|
266
284
|
int error;
|
267
285
|
|
@@ -302,18 +320,18 @@ static int create_binary(
|
|
302
320
|
if (delta.size && delta.size < deflate.size) {
|
303
321
|
*out_type = GIT_DIFF_BINARY_DELTA;
|
304
322
|
*out_datalen = delta.size;
|
305
|
-
*out_data =
|
323
|
+
*out_data = git_str_detach(&delta);
|
306
324
|
*out_inflatedlen = delta_data_len;
|
307
325
|
} else {
|
308
326
|
*out_type = GIT_DIFF_BINARY_LITERAL;
|
309
327
|
*out_datalen = deflate.size;
|
310
|
-
*out_data =
|
328
|
+
*out_data = git_str_detach(&deflate);
|
311
329
|
*out_inflatedlen = b_datalen;
|
312
330
|
}
|
313
331
|
|
314
332
|
done:
|
315
|
-
|
316
|
-
|
333
|
+
git_str_dispose(&deflate);
|
334
|
+
git_str_dispose(&delta);
|
317
335
|
|
318
336
|
return error;
|
319
337
|
}
|
@@ -449,7 +467,7 @@ static int patch_generated_from_sources(
|
|
449
467
|
git_xdiff_output *xo,
|
450
468
|
git_diff_file_content_src *oldsrc,
|
451
469
|
git_diff_file_content_src *newsrc,
|
452
|
-
const git_diff_options *
|
470
|
+
const git_diff_options *given_opts)
|
453
471
|
{
|
454
472
|
int error = 0;
|
455
473
|
git_repository *repo =
|
@@ -457,11 +475,12 @@ static int patch_generated_from_sources(
|
|
457
475
|
newsrc->blob ? git_blob_owner(newsrc->blob) : NULL;
|
458
476
|
git_diff_file *lfile = &pd->delta.old_file, *rfile = &pd->delta.new_file;
|
459
477
|
git_diff_file_content *ldata = &pd->patch.ofile, *rdata = &pd->patch.nfile;
|
478
|
+
git_diff_options *opts = &pd->patch.base.diff_opts;
|
460
479
|
|
461
|
-
if ((error = patch_generated_normalize_options(
|
480
|
+
if ((error = patch_generated_normalize_options(opts, given_opts, repo)) < 0)
|
462
481
|
return error;
|
463
482
|
|
464
|
-
if (
|
483
|
+
if ((opts->flags & GIT_DIFF_REVERSE) != 0) {
|
465
484
|
void *tmp = lfile; lfile = rfile; rfile = tmp;
|
466
485
|
tmp = ldata; ldata = rdata; rdata = tmp;
|
467
486
|
}
|
@@ -750,18 +769,34 @@ git_diff_driver *git_patch_generated_driver(git_patch_generated *patch)
|
|
750
769
|
return patch->ofile.driver;
|
751
770
|
}
|
752
771
|
|
753
|
-
|
754
|
-
char **ptr,
|
772
|
+
int git_patch_generated_old_data(
|
773
|
+
char **ptr, long *len, git_patch_generated *patch)
|
755
774
|
{
|
775
|
+
if (patch->ofile.map.len > LONG_MAX ||
|
776
|
+
patch->ofile.map.len > GIT_XDIFF_MAX_SIZE) {
|
777
|
+
git_error_set(GIT_ERROR_INVALID, "files too large for diff");
|
778
|
+
return -1;
|
779
|
+
}
|
780
|
+
|
756
781
|
*ptr = patch->ofile.map.data;
|
757
|
-
*len = patch->ofile.map.len;
|
782
|
+
*len = (long)patch->ofile.map.len;
|
783
|
+
|
784
|
+
return 0;
|
758
785
|
}
|
759
786
|
|
760
|
-
|
761
|
-
char **ptr,
|
787
|
+
int git_patch_generated_new_data(
|
788
|
+
char **ptr, long *len, git_patch_generated *patch)
|
762
789
|
{
|
790
|
+
if (patch->ofile.map.len > LONG_MAX ||
|
791
|
+
patch->ofile.map.len > GIT_XDIFF_MAX_SIZE) {
|
792
|
+
git_error_set(GIT_ERROR_INVALID, "files too large for diff");
|
793
|
+
return -1;
|
794
|
+
}
|
795
|
+
|
763
796
|
*ptr = patch->nfile.map.data;
|
764
|
-
*len = patch->nfile.map.len;
|
797
|
+
*len = (long)patch->nfile.map.len;
|
798
|
+
|
799
|
+
return 0;
|
765
800
|
}
|
766
801
|
|
767
802
|
static int patch_generated_file_cb(
|
@@ -21,7 +21,7 @@ enum {
|
|
21
21
|
GIT_PATCH_GENERATED_DIFFABLE = (1 << 3),
|
22
22
|
/* the difference between the two sides has been computed */
|
23
23
|
GIT_PATCH_GENERATED_DIFFED = (1 << 4),
|
24
|
-
GIT_PATCH_GENERATED_FLATTENED = (1 << 5)
|
24
|
+
GIT_PATCH_GENERATED_FLATTENED = (1 << 5)
|
25
25
|
};
|
26
26
|
|
27
27
|
struct git_patch_generated {
|
@@ -39,10 +39,10 @@ typedef struct git_patch_generated git_patch_generated;
|
|
39
39
|
|
40
40
|
extern git_diff_driver *git_patch_generated_driver(git_patch_generated *);
|
41
41
|
|
42
|
-
extern
|
43
|
-
char **,
|
44
|
-
extern
|
45
|
-
char **,
|
42
|
+
extern int git_patch_generated_old_data(
|
43
|
+
char **, long *, git_patch_generated *);
|
44
|
+
extern int git_patch_generated_new_data(
|
45
|
+
char **, long *, git_patch_generated *);
|
46
46
|
extern int git_patch_generated_from_diff(
|
47
47
|
git_patch **, git_diff *, size_t);
|
48
48
|
|
@@ -10,7 +10,7 @@
|
|
10
10
|
#include "git2/patch.h"
|
11
11
|
#include "patch.h"
|
12
12
|
#include "diff_parse.h"
|
13
|
-
#include "
|
13
|
+
#include "fs_path.h"
|
14
14
|
|
15
15
|
typedef struct {
|
16
16
|
git_patch base;
|
@@ -65,22 +65,22 @@ static size_t header_path_len(git_patch_parse_ctx *ctx)
|
|
65
65
|
return len;
|
66
66
|
}
|
67
67
|
|
68
|
-
static int parse_header_path_buf(
|
68
|
+
static int parse_header_path_buf(git_str *path, git_patch_parse_ctx *ctx, size_t path_len)
|
69
69
|
{
|
70
70
|
int error;
|
71
71
|
|
72
|
-
if ((error =
|
72
|
+
if ((error = git_str_put(path, ctx->parse_ctx.line, path_len)) < 0)
|
73
73
|
return error;
|
74
74
|
|
75
75
|
git_parse_advance_chars(&ctx->parse_ctx, path_len);
|
76
76
|
|
77
|
-
|
77
|
+
git_str_rtrim(path);
|
78
78
|
|
79
79
|
if (path->size > 0 && path->ptr[0] == '"' &&
|
80
|
-
(error =
|
80
|
+
(error = git_str_unquote(path)) < 0)
|
81
81
|
return error;
|
82
82
|
|
83
|
-
|
83
|
+
git_fs_path_squash_slashes(path);
|
84
84
|
|
85
85
|
if (!path->size)
|
86
86
|
return git_parse_err("patch contains empty path at line %"PRIuZ,
|
@@ -91,22 +91,22 @@ static int parse_header_path_buf(git_buf *path, git_patch_parse_ctx *ctx, size_t
|
|
91
91
|
|
92
92
|
static int parse_header_path(char **out, git_patch_parse_ctx *ctx)
|
93
93
|
{
|
94
|
-
|
94
|
+
git_str path = GIT_STR_INIT;
|
95
95
|
int error;
|
96
96
|
|
97
97
|
if ((error = parse_header_path_buf(&path, ctx, header_path_len(ctx))) < 0)
|
98
98
|
goto out;
|
99
|
-
*out =
|
99
|
+
*out = git_str_detach(&path);
|
100
100
|
|
101
101
|
out:
|
102
|
-
|
102
|
+
git_str_dispose(&path);
|
103
103
|
return error;
|
104
104
|
}
|
105
105
|
|
106
106
|
static int parse_header_git_oldpath(
|
107
107
|
git_patch_parsed *patch, git_patch_parse_ctx *ctx)
|
108
108
|
{
|
109
|
-
|
109
|
+
git_str old_path = GIT_STR_INIT;
|
110
110
|
int error;
|
111
111
|
|
112
112
|
if (patch->old_path) {
|
@@ -118,17 +118,17 @@ static int parse_header_git_oldpath(
|
|
118
118
|
if ((error = parse_header_path_buf(&old_path, ctx, ctx->parse_ctx.line_len - 1)) < 0)
|
119
119
|
goto out;
|
120
120
|
|
121
|
-
patch->old_path =
|
121
|
+
patch->old_path = git_str_detach(&old_path);
|
122
122
|
|
123
123
|
out:
|
124
|
-
|
124
|
+
git_str_dispose(&old_path);
|
125
125
|
return error;
|
126
126
|
}
|
127
127
|
|
128
128
|
static int parse_header_git_newpath(
|
129
129
|
git_patch_parsed *patch, git_patch_parse_ctx *ctx)
|
130
130
|
{
|
131
|
-
|
131
|
+
git_str new_path = GIT_STR_INIT;
|
132
132
|
int error;
|
133
133
|
|
134
134
|
if (patch->new_path) {
|
@@ -139,10 +139,10 @@ static int parse_header_git_newpath(
|
|
139
139
|
|
140
140
|
if ((error = parse_header_path_buf(&new_path, ctx, ctx->parse_ctx.line_len - 1)) < 0)
|
141
141
|
goto out;
|
142
|
-
patch->new_path =
|
142
|
+
patch->new_path = git_str_detach(&new_path);
|
143
143
|
|
144
144
|
out:
|
145
|
-
|
145
|
+
git_str_dispose(&new_path);
|
146
146
|
return error;
|
147
147
|
}
|
148
148
|
|
@@ -166,15 +166,19 @@ static int parse_header_oid(
|
|
166
166
|
uint16_t *oid_len,
|
167
167
|
git_patch_parse_ctx *ctx)
|
168
168
|
{
|
169
|
-
size_t len;
|
169
|
+
size_t hexsize, len;
|
170
|
+
|
171
|
+
hexsize = git_oid_hexsize(ctx->opts.oid_type);
|
170
172
|
|
171
|
-
for (len = 0;
|
173
|
+
for (len = 0;
|
174
|
+
len < ctx->parse_ctx.line_len && len < hexsize;
|
175
|
+
len++) {
|
172
176
|
if (!git__isxdigit(ctx->parse_ctx.line[len]))
|
173
177
|
break;
|
174
178
|
}
|
175
179
|
|
176
|
-
if (len < GIT_OID_MINPREFIXLEN || len >
|
177
|
-
|
180
|
+
if (len < GIT_OID_MINPREFIXLEN || len > hexsize ||
|
181
|
+
git_oid__fromstrn(oid, ctx->parse_ctx.line, len, ctx->opts.oid_type) < 0)
|
178
182
|
return git_parse_err("invalid hex formatted object id at line %"PRIuZ,
|
179
183
|
ctx->parse_ctx.line_num);
|
180
184
|
|
@@ -257,7 +261,7 @@ static int parse_header_rename(
|
|
257
261
|
char **out,
|
258
262
|
git_patch_parse_ctx *ctx)
|
259
263
|
{
|
260
|
-
|
264
|
+
git_str path = GIT_STR_INIT;
|
261
265
|
|
262
266
|
if (parse_header_path_buf(&path, ctx, header_path_len(ctx)) < 0)
|
263
267
|
return -1;
|
@@ -265,7 +269,7 @@ static int parse_header_rename(
|
|
265
269
|
/* Note: the `rename from` and `rename to` lines include the literal
|
266
270
|
* filename. They do *not* include the prefix. (Who needs consistency?)
|
267
271
|
*/
|
268
|
-
*out =
|
272
|
+
*out = git_str_detach(&path);
|
269
273
|
return 0;
|
270
274
|
}
|
271
275
|
|
@@ -353,7 +357,7 @@ static int parse_header_start(git_patch_parsed *patch, git_patch_parse_ctx *ctx)
|
|
353
357
|
* We cannot expect to be able to always parse paths correctly at this
|
354
358
|
* point. Due to the possibility of unquoted names, whitespaces in
|
355
359
|
* filenames and custom prefixes we have to allow that, though, and just
|
356
|
-
*
|
360
|
+
* proceed here. We then hope for the "---" and "+++" lines to fix that
|
357
361
|
* for us.
|
358
362
|
*/
|
359
363
|
if (!git_parse_ctx_contains(&ctx->parse_ctx, "\n", 1) &&
|
@@ -382,7 +386,7 @@ typedef enum {
|
|
382
386
|
STATE_RENAME,
|
383
387
|
STATE_COPY,
|
384
388
|
|
385
|
-
STATE_END
|
389
|
+
STATE_END
|
386
390
|
} parse_header_state;
|
387
391
|
|
388
392
|
typedef struct {
|
@@ -558,9 +562,9 @@ fail:
|
|
558
562
|
|
559
563
|
static int eof_for_origin(int origin) {
|
560
564
|
if (origin == GIT_DIFF_LINE_ADDITION)
|
561
|
-
return GIT_DIFF_LINE_ADD_EOFNL;
|
562
|
-
if (origin == GIT_DIFF_LINE_DELETION)
|
563
565
|
return GIT_DIFF_LINE_DEL_EOFNL;
|
566
|
+
if (origin == GIT_DIFF_LINE_DELETION)
|
567
|
+
return GIT_DIFF_LINE_ADD_EOFNL;
|
564
568
|
return GIT_DIFF_LINE_CONTEXT_EOFNL;
|
565
569
|
}
|
566
570
|
|
@@ -766,7 +770,7 @@ static int parse_patch_binary_side(
|
|
766
770
|
git_patch_parse_ctx *ctx)
|
767
771
|
{
|
768
772
|
git_diff_binary_t type = GIT_DIFF_BINARY_NONE;
|
769
|
-
|
773
|
+
git_str base85 = GIT_STR_INIT, decoded = GIT_STR_INIT;
|
770
774
|
int64_t len;
|
771
775
|
int error = 0;
|
772
776
|
|
@@ -815,7 +819,7 @@ static int parse_patch_binary_side(
|
|
815
819
|
goto done;
|
816
820
|
}
|
817
821
|
|
818
|
-
if ((error =
|
822
|
+
if ((error = git_str_decode_base85(
|
819
823
|
&decoded, ctx->parse_ctx.line, encoded_len, decoded_len)) < 0)
|
820
824
|
goto done;
|
821
825
|
|
@@ -835,11 +839,11 @@ static int parse_patch_binary_side(
|
|
835
839
|
binary->type = type;
|
836
840
|
binary->inflatedlen = (size_t)len;
|
837
841
|
binary->datalen = decoded.size;
|
838
|
-
binary->data =
|
842
|
+
binary->data = git_str_detach(&decoded);
|
839
843
|
|
840
844
|
done:
|
841
|
-
|
842
|
-
|
845
|
+
git_str_dispose(&base85);
|
846
|
+
git_str_dispose(&decoded);
|
843
847
|
return error;
|
844
848
|
}
|
845
849
|
|
@@ -1065,12 +1069,14 @@ static int check_patch(git_patch_parsed *patch)
|
|
1065
1069
|
return git_parse_err("patch with no hunks");
|
1066
1070
|
|
1067
1071
|
if (delta->status == GIT_DELTA_ADDED) {
|
1068
|
-
|
1072
|
+
git_oid_clear(&delta->old_file.id,
|
1073
|
+
patch->base.diff_opts.oid_type);
|
1069
1074
|
delta->old_file.id_abbrev = 0;
|
1070
1075
|
}
|
1071
1076
|
|
1072
1077
|
if (delta->status == GIT_DELTA_DELETED) {
|
1073
|
-
|
1078
|
+
git_oid_clear(&delta->new_file.id,
|
1079
|
+
patch->base.diff_opts.oid_type);
|
1074
1080
|
delta->new_file.id_abbrev = 0;
|
1075
1081
|
}
|
1076
1082
|
|
@@ -1187,11 +1193,13 @@ int git_patch_parse(
|
|
1187
1193
|
patch->base.delta->status = GIT_DELTA_MODIFIED;
|
1188
1194
|
patch->base.delta->nfiles = 2;
|
1189
1195
|
|
1196
|
+
patch->base.diff_opts.oid_type = ctx->opts.oid_type;
|
1197
|
+
|
1190
1198
|
start = ctx->parse_ctx.remain_len;
|
1191
1199
|
|
1192
1200
|
if ((error = parse_patch_header(patch, ctx)) < 0 ||
|
1193
|
-
|
1194
|
-
|
1201
|
+
(error = parse_patch_body(patch, ctx)) < 0 ||
|
1202
|
+
(error = check_patch(patch)) < 0)
|
1195
1203
|
goto done;
|
1196
1204
|
|
1197
1205
|
used = start - ctx->parse_ctx.remain_len;
|