rugged 1.3.1 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +34 -2
- data/ext/rugged/extconf.rb +6 -3
- data/ext/rugged/rugged.c +16 -0
- data/ext/rugged/rugged.h +4 -0
- data/ext/rugged/rugged_allocator.c +0 -54
- data/ext/rugged/rugged_blame.c +2 -0
- data/ext/rugged/rugged_blob.c +3 -0
- data/ext/rugged/rugged_commit.c +1 -0
- data/ext/rugged/rugged_config.c +9 -2
- data/ext/rugged/rugged_diff.c +1 -0
- data/ext/rugged/rugged_index.c +2 -0
- data/ext/rugged/rugged_patch.c +1 -0
- data/ext/rugged/rugged_rebase.c +1 -0
- data/ext/rugged/rugged_reference.c +1 -0
- data/ext/rugged/rugged_remote.c +28 -10
- data/ext/rugged/rugged_repo.c +7 -9
- data/ext/rugged/rugged_revwalk.c +5 -1
- data/ext/rugged/rugged_settings.c +5 -0
- data/ext/rugged/rugged_submodule.c +1 -0
- data/ext/rugged/rugged_tag.c +1 -0
- data/ext/rugged/rugged_tree.c +4 -0
- data/lib/rugged/index.rb +1 -1
- data/lib/rugged/tree.rb +5 -1
- data/lib/rugged/version.rb +1 -1
- data/vendor/libgit2/AUTHORS +1 -0
- data/vendor/libgit2/CMakeLists.txt +141 -289
- data/vendor/libgit2/COPYING +301 -20
- data/vendor/libgit2/cmake/AddCFlagIfSupported.cmake +21 -21
- data/vendor/libgit2/cmake/AddClarTest.cmake +7 -0
- data/vendor/libgit2/cmake/CheckPrototypeDefinitionSafe.cmake +16 -0
- data/vendor/libgit2/cmake/DefaultCFlags.cmake +154 -0
- data/vendor/libgit2/cmake/EnableWarnings.cmake +13 -13
- data/vendor/libgit2/cmake/ExperimentalFeatures.cmake +23 -0
- data/vendor/libgit2/cmake/FindCoreFoundation.cmake +13 -13
- data/vendor/libgit2/cmake/FindGSSAPI.cmake +171 -287
- data/vendor/libgit2/cmake/FindGSSFramework.cmake +13 -13
- data/vendor/libgit2/cmake/FindHTTP_Parser.cmake +17 -17
- data/vendor/libgit2/cmake/FindIntlIconv.cmake +51 -0
- data/vendor/libgit2/cmake/FindLLHTTP.cmake +39 -0
- data/vendor/libgit2/cmake/FindLibSSH2.cmake +5 -5
- data/vendor/libgit2/cmake/FindPCRE.cmake +12 -13
- data/vendor/libgit2/cmake/FindPCRE2.cmake +12 -12
- data/vendor/libgit2/cmake/FindPkgLibraries.cmake +19 -19
- data/vendor/libgit2/cmake/FindSecurity.cmake +14 -14
- data/vendor/libgit2/cmake/FindStatNsec.cmake +12 -18
- data/vendor/libgit2/cmake/Findfutimens.cmake +8 -8
- data/vendor/libgit2/cmake/FindmbedTLS.cmake +63 -70
- data/vendor/libgit2/cmake/IdeSplitSources.cmake +18 -18
- data/vendor/libgit2/cmake/PkgBuildConfig.cmake +60 -60
- data/vendor/libgit2/cmake/SanitizeBool.cmake +20 -20
- data/vendor/libgit2/cmake/SelectGSSAPI.cmake +37 -37
- data/vendor/libgit2/cmake/SelectHTTPParser.cmake +34 -0
- data/vendor/libgit2/cmake/SelectHTTPSBackend.cmake +129 -101
- data/vendor/libgit2/cmake/SelectHashes.cmake +113 -54
- data/vendor/libgit2/cmake/SelectRegex.cmake +56 -0
- data/vendor/libgit2/cmake/SelectSSH.cmake +46 -0
- data/vendor/libgit2/cmake/SelectXdiff.cmake +9 -0
- data/vendor/libgit2/cmake/SelectZlib.cmake +38 -0
- data/vendor/libgit2/deps/chromium-zlib/CMakeLists.txt +6 -6
- data/vendor/libgit2/deps/llhttp/CMakeLists.txt +8 -0
- data/vendor/libgit2/deps/llhttp/LICENSE-MIT +22 -0
- data/vendor/libgit2/deps/llhttp/api.c +510 -0
- data/vendor/libgit2/deps/llhttp/http.c +170 -0
- data/vendor/libgit2/deps/llhttp/llhttp.c +10168 -0
- data/vendor/libgit2/deps/llhttp/llhttp.h +897 -0
- data/vendor/libgit2/deps/ntlmclient/CMakeLists.txt +33 -31
- data/vendor/libgit2/deps/ntlmclient/crypt_builtin_md4.c +311 -0
- data/vendor/libgit2/deps/ntlmclient/crypt_commoncrypto.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/crypt_mbedtls.c +0 -20
- data/vendor/libgit2/deps/ntlmclient/crypt_openssl.c +7 -5
- data/vendor/libgit2/deps/ntlmclient/ntlm.c +25 -25
- data/vendor/libgit2/deps/ntlmclient/ntlm.h +4 -4
- data/vendor/libgit2/deps/ntlmclient/ntlmclient.h +2 -2
- data/vendor/libgit2/deps/ntlmclient/unicode_builtin.c +5 -4
- data/vendor/libgit2/deps/ntlmclient/unicode_iconv.c +2 -1
- data/vendor/libgit2/deps/ntlmclient/utf8.h +1176 -721
- data/vendor/libgit2/deps/ntlmclient/util.h +11 -0
- data/vendor/libgit2/deps/pcre/CMakeLists.txt +89 -88
- data/vendor/libgit2/deps/pcre/LICENCE +5 -5
- data/vendor/libgit2/deps/pcre/pcre.h +2 -2
- data/vendor/libgit2/deps/pcre/pcre_compile.c +6 -3
- data/vendor/libgit2/deps/pcre/pcre_exec.c +2 -2
- data/vendor/libgit2/deps/winhttp/CMakeLists.txt +14 -16
- data/vendor/libgit2/deps/xdiff/CMakeLists.txt +28 -0
- data/vendor/libgit2/deps/xdiff/git-xdiff.h +56 -0
- data/vendor/libgit2/{src → deps}/xdiff/xdiff.h +15 -15
- data/vendor/libgit2/{src → deps}/xdiff/xdiffi.c +152 -125
- data/vendor/libgit2/{src → deps}/xdiff/xdiffi.h +2 -4
- data/vendor/libgit2/{src → deps}/xdiff/xemit.c +26 -10
- data/vendor/libgit2/{src → deps}/xdiff/xhistogram.c +92 -94
- data/vendor/libgit2/{src → deps}/xdiff/xinclude.h +1 -12
- data/vendor/libgit2/{src → deps}/xdiff/xmacros.h +18 -1
- data/vendor/libgit2/{src → deps}/xdiff/xmerge.c +126 -137
- data/vendor/libgit2/{src → deps}/xdiff/xpatience.c +26 -46
- data/vendor/libgit2/{src → deps}/xdiff/xprepare.c +24 -46
- data/vendor/libgit2/{src → deps}/xdiff/xutils.c +36 -8
- data/vendor/libgit2/{src → deps}/xdiff/xutils.h +2 -1
- data/vendor/libgit2/deps/zlib/CMakeLists.txt +6 -1
- data/vendor/libgit2/deps/zlib/LICENSE +22 -0
- data/vendor/libgit2/deps/zlib/adler32.c +7 -22
- data/vendor/libgit2/deps/zlib/crc32.c +931 -317
- data/vendor/libgit2/deps/zlib/crc32.h +9441 -436
- data/vendor/libgit2/deps/zlib/deflate.c +428 -453
- data/vendor/libgit2/deps/zlib/deflate.h +51 -23
- data/vendor/libgit2/deps/zlib/gzguts.h +15 -19
- data/vendor/libgit2/deps/zlib/infback.c +19 -31
- data/vendor/libgit2/deps/zlib/inffast.c +15 -18
- data/vendor/libgit2/deps/zlib/inffast.h +1 -1
- data/vendor/libgit2/deps/zlib/inflate.c +75 -110
- data/vendor/libgit2/deps/zlib/inflate.h +3 -2
- data/vendor/libgit2/deps/zlib/inftrees.c +6 -11
- data/vendor/libgit2/deps/zlib/inftrees.h +6 -6
- data/vendor/libgit2/deps/zlib/trees.c +294 -380
- data/vendor/libgit2/deps/zlib/zconf.h +23 -14
- data/vendor/libgit2/deps/zlib/zlib.h +310 -284
- data/vendor/libgit2/deps/zlib/zutil.c +20 -46
- data/vendor/libgit2/deps/zlib/zutil.h +24 -41
- data/vendor/libgit2/include/git2/annotated_commit.h +12 -5
- data/vendor/libgit2/include/git2/apply.h +43 -8
- data/vendor/libgit2/include/git2/attr.h +28 -6
- data/vendor/libgit2/include/git2/blame.h +137 -29
- data/vendor/libgit2/include/git2/blob.h +85 -29
- data/vendor/libgit2/include/git2/branch.h +25 -16
- data/vendor/libgit2/include/git2/buffer.h +24 -82
- data/vendor/libgit2/include/git2/cert.h +4 -3
- data/vendor/libgit2/include/git2/checkout.h +88 -34
- data/vendor/libgit2/include/git2/cherrypick.h +10 -3
- data/vendor/libgit2/include/git2/clone.h +28 -12
- data/vendor/libgit2/include/git2/commit.h +134 -3
- data/vendor/libgit2/include/git2/common.h +172 -59
- data/vendor/libgit2/include/git2/config.h +118 -32
- data/vendor/libgit2/include/git2/credential.h +32 -3
- data/vendor/libgit2/include/git2/credential_helpers.h +2 -0
- data/vendor/libgit2/include/git2/deprecated.h +141 -3
- data/vendor/libgit2/include/git2/describe.h +20 -3
- data/vendor/libgit2/include/git2/diff.h +95 -19
- data/vendor/libgit2/include/git2/email.h +10 -30
- data/vendor/libgit2/include/git2/errors.h +51 -61
- data/vendor/libgit2/include/git2/experimental.h +20 -0
- data/vendor/libgit2/include/git2/filter.h +21 -9
- data/vendor/libgit2/include/git2/global.h +8 -1
- data/vendor/libgit2/include/git2/graph.h +4 -2
- data/vendor/libgit2/include/git2/ignore.h +11 -1
- data/vendor/libgit2/include/git2/index.h +111 -11
- data/vendor/libgit2/include/git2/indexer.h +67 -2
- data/vendor/libgit2/include/git2/mailmap.h +7 -1
- data/vendor/libgit2/include/git2/merge.h +70 -5
- data/vendor/libgit2/include/git2/message.h +4 -2
- data/vendor/libgit2/include/git2/net.h +3 -1
- data/vendor/libgit2/include/git2/notes.h +9 -6
- data/vendor/libgit2/include/git2/object.h +57 -7
- data/vendor/libgit2/include/git2/odb.h +156 -33
- data/vendor/libgit2/include/git2/odb_backend.h +132 -16
- data/vendor/libgit2/include/git2/oid.h +116 -17
- data/vendor/libgit2/include/git2/oidarray.h +7 -1
- data/vendor/libgit2/include/git2/pack.h +37 -9
- data/vendor/libgit2/include/git2/patch.h +10 -3
- data/vendor/libgit2/include/git2/pathspec.h +10 -1
- data/vendor/libgit2/include/git2/proxy.h +11 -1
- data/vendor/libgit2/include/git2/rebase.h +18 -7
- data/vendor/libgit2/include/git2/refdb.h +5 -2
- data/vendor/libgit2/include/git2/reflog.h +4 -3
- data/vendor/libgit2/include/git2/refs.h +11 -8
- data/vendor/libgit2/include/git2/refspec.h +14 -4
- data/vendor/libgit2/include/git2/remote.h +295 -54
- data/vendor/libgit2/include/git2/repository.h +95 -25
- data/vendor/libgit2/include/git2/reset.h +18 -5
- data/vendor/libgit2/include/git2/revert.h +9 -4
- data/vendor/libgit2/include/git2/revparse.h +4 -4
- data/vendor/libgit2/include/git2/revwalk.h +7 -3
- data/vendor/libgit2/include/git2/signature.h +47 -2
- data/vendor/libgit2/include/git2/stash.h +78 -10
- data/vendor/libgit2/include/git2/status.h +24 -11
- data/vendor/libgit2/include/git2/stdint.h +87 -85
- data/vendor/libgit2/include/git2/strarray.h +2 -16
- data/vendor/libgit2/include/git2/submodule.h +27 -11
- data/vendor/libgit2/include/git2/sys/alloc.h +12 -34
- data/vendor/libgit2/include/git2/sys/commit.h +77 -3
- data/vendor/libgit2/include/git2/sys/commit_graph.h +110 -59
- data/vendor/libgit2/include/git2/sys/config.h +80 -4
- data/vendor/libgit2/include/git2/sys/credential.h +4 -3
- data/vendor/libgit2/include/git2/sys/diff.h +21 -1
- data/vendor/libgit2/include/git2/sys/email.h +7 -0
- data/vendor/libgit2/include/git2/sys/errors.h +76 -0
- data/vendor/libgit2/include/git2/sys/filter.h +66 -3
- data/vendor/libgit2/include/git2/sys/hashsig.h +11 -0
- data/vendor/libgit2/include/git2/sys/index.h +3 -2
- data/vendor/libgit2/include/git2/sys/mempack.h +32 -2
- data/vendor/libgit2/include/git2/sys/merge.h +55 -7
- data/vendor/libgit2/include/git2/sys/midx.h +47 -4
- data/vendor/libgit2/include/git2/sys/odb_backend.h +10 -9
- data/vendor/libgit2/include/git2/sys/openssl.h +8 -1
- data/vendor/libgit2/include/git2/sys/path.h +12 -1
- data/vendor/libgit2/include/git2/sys/refdb_backend.h +40 -36
- data/vendor/libgit2/include/git2/sys/refs.h +3 -2
- data/vendor/libgit2/include/git2/sys/remote.h +53 -0
- data/vendor/libgit2/include/git2/sys/repository.h +63 -3
- data/vendor/libgit2/include/git2/sys/stream.h +26 -3
- data/vendor/libgit2/include/git2/sys/transport.h +87 -41
- data/vendor/libgit2/include/git2/tag.h +4 -1
- data/vendor/libgit2/include/git2/trace.h +9 -3
- data/vendor/libgit2/include/git2/transaction.h +3 -2
- data/vendor/libgit2/include/git2/transport.h +11 -3
- data/vendor/libgit2/include/git2/tree.h +20 -8
- data/vendor/libgit2/include/git2/types.h +26 -10
- data/vendor/libgit2/include/git2/version.h +63 -6
- data/vendor/libgit2/include/git2/worktree.h +30 -8
- data/vendor/libgit2/include/git2.h +1 -0
- data/vendor/libgit2/src/CMakeLists.txt +203 -420
- data/vendor/libgit2/src/README.md +12 -0
- data/vendor/libgit2/src/cli/CMakeLists.txt +56 -0
- data/vendor/libgit2/src/cli/README.md +26 -0
- data/vendor/libgit2/src/{branch.h → cli/cmd.c} +10 -8
- data/vendor/libgit2/src/cli/cmd.h +37 -0
- data/vendor/libgit2/src/cli/cmd_blame.c +287 -0
- data/vendor/libgit2/src/cli/cmd_cat_file.c +202 -0
- data/vendor/libgit2/src/cli/cmd_clone.c +190 -0
- data/vendor/libgit2/src/cli/cmd_config.c +241 -0
- data/vendor/libgit2/src/cli/cmd_hash_object.c +152 -0
- data/vendor/libgit2/src/cli/cmd_help.c +85 -0
- data/vendor/libgit2/src/cli/cmd_index_pack.c +114 -0
- data/vendor/libgit2/src/cli/cmd_init.c +102 -0
- data/vendor/libgit2/src/cli/common.c +168 -0
- data/vendor/libgit2/src/cli/common.h +63 -0
- data/vendor/libgit2/src/cli/error.h +51 -0
- data/vendor/libgit2/src/cli/main.c +134 -0
- data/vendor/libgit2/src/cli/opt.c +695 -0
- data/vendor/libgit2/src/cli/opt.h +367 -0
- data/vendor/libgit2/src/cli/opt_usage.c +263 -0
- data/vendor/libgit2/src/cli/opt_usage.h +40 -0
- data/vendor/libgit2/src/cli/progress.c +395 -0
- data/vendor/libgit2/src/cli/progress.h +129 -0
- data/vendor/libgit2/src/cli/sighandler.h +20 -0
- data/vendor/libgit2/src/cli/unix/sighandler.c +37 -0
- data/vendor/libgit2/src/cli/win32/precompiled.h +3 -0
- data/vendor/libgit2/src/cli/win32/sighandler.c +37 -0
- data/vendor/libgit2/src/libgit2/CMakeLists.txt +140 -0
- data/vendor/libgit2/src/{annotated_commit.c → libgit2/annotated_commit.c} +2 -2
- data/vendor/libgit2/src/{annotated_commit.h → libgit2/annotated_commit.h} +2 -2
- data/vendor/libgit2/src/{apply.c → libgit2/apply.c} +32 -34
- data/vendor/libgit2/src/{apply.h → libgit2/apply.h} +2 -2
- data/vendor/libgit2/src/{attr.c → libgit2/attr.c} +48 -31
- data/vendor/libgit2/src/{attr_file.c → libgit2/attr_file.c} +25 -20
- data/vendor/libgit2/src/{attr_file.h → libgit2/attr_file.h} +6 -4
- data/vendor/libgit2/src/{attrcache.c → libgit2/attrcache.c} +87 -46
- data/vendor/libgit2/src/{attrcache.h → libgit2/attrcache.h} +5 -9
- data/vendor/libgit2/src/{blame.c → libgit2/blame.c} +152 -57
- data/vendor/libgit2/src/{blame.h → libgit2/blame.h} +1 -0
- data/vendor/libgit2/src/{blame_git.c → libgit2/blame_git.c} +1 -2
- data/vendor/libgit2/src/{blob.c → libgit2/blob.c} +38 -29
- data/vendor/libgit2/src/{blob.h → libgit2/blob.h} +3 -3
- data/vendor/libgit2/src/{branch.c → libgit2/branch.c} +164 -118
- data/vendor/libgit2/src/libgit2/branch.h +31 -0
- data/vendor/libgit2/src/libgit2/buf.c +126 -0
- data/vendor/libgit2/src/libgit2/buf.h +50 -0
- data/vendor/libgit2/src/{cache.c → libgit2/cache.c} +22 -17
- data/vendor/libgit2/src/{cache.h → libgit2/cache.h} +7 -9
- data/vendor/libgit2/src/{checkout.c → libgit2/checkout.c} +107 -91
- data/vendor/libgit2/src/{checkout.h → libgit2/checkout.h} +0 -2
- data/vendor/libgit2/src/{cherrypick.c → libgit2/cherrypick.c} +14 -15
- data/vendor/libgit2/src/{clone.c → libgit2/clone.c} +254 -203
- data/vendor/libgit2/src/{clone.h → libgit2/clone.h} +4 -1
- data/vendor/libgit2/src/{commit.c → libgit2/commit.c} +296 -77
- data/vendor/libgit2/src/libgit2/commit.h +87 -0
- data/vendor/libgit2/src/{commit_graph.c → libgit2/commit_graph.c} +246 -135
- data/vendor/libgit2/src/{commit_graph.h → libgit2/commit_graph.h} +33 -8
- data/vendor/libgit2/src/{commit_list.c → libgit2/commit_list.c} +17 -7
- data/vendor/libgit2/src/{commit_list.h → libgit2/commit_list.h} +1 -0
- data/vendor/libgit2/src/libgit2/common.h +55 -0
- data/vendor/libgit2/src/{config.c → libgit2/config.c} +490 -360
- data/vendor/libgit2/src/libgit2/config.cmake.in +3 -0
- data/vendor/libgit2/src/{config.h → libgit2/config.h} +24 -6
- data/vendor/libgit2/src/{config_backend.h → libgit2/config_backend.h} +8 -10
- data/vendor/libgit2/src/{config_cache.c → libgit2/config_cache.c} +4 -5
- data/vendor/libgit2/src/{config_file.c → libgit2/config_file.c} +212 -183
- data/vendor/libgit2/src/libgit2/config_list.c +285 -0
- data/vendor/libgit2/src/libgit2/config_list.h +32 -0
- data/vendor/libgit2/src/libgit2/config_mem.c +374 -0
- data/vendor/libgit2/src/{config_parse.c → libgit2/config_parse.c} +37 -32
- data/vendor/libgit2/src/{config_snapshot.c → libgit2/config_snapshot.c} +24 -31
- data/vendor/libgit2/src/{crlf.c → libgit2/crlf.c} +24 -21
- data/vendor/libgit2/src/{describe.c → libgit2/describe.c} +62 -51
- data/vendor/libgit2/src/{diff.c → libgit2/diff.c} +44 -14
- data/vendor/libgit2/src/{diff.h → libgit2/diff.h} +8 -10
- data/vendor/libgit2/src/{diff_driver.c → libgit2/diff_driver.c} +46 -55
- data/vendor/libgit2/src/{diff_driver.h → libgit2/diff_driver.h} +5 -5
- data/vendor/libgit2/src/{diff_file.c → libgit2/diff_file.c} +45 -27
- data/vendor/libgit2/src/{diff_generate.c → libgit2/diff_generate.c} +70 -20
- data/vendor/libgit2/src/{diff_generate.h → libgit2/diff_generate.h} +5 -3
- data/vendor/libgit2/src/{diff_parse.c → libgit2/diff_parse.c} +22 -6
- data/vendor/libgit2/src/{diff_print.c → libgit2/diff_print.c} +192 -105
- data/vendor/libgit2/src/{diff_stats.c → libgit2/diff_stats.c} +40 -29
- data/vendor/libgit2/src/libgit2/diff_stats.h +18 -0
- data/vendor/libgit2/src/{diff_tform.c → libgit2/diff_tform.c} +49 -16
- data/vendor/libgit2/src/{diff_xdiff.c → libgit2/diff_xdiff.c} +4 -8
- data/vendor/libgit2/src/{diff_xdiff.h → libgit2/diff_xdiff.h} +1 -1
- data/vendor/libgit2/src/{email.c → libgit2/email.c} +58 -40
- data/vendor/libgit2/src/{email.h → libgit2/email.h} +1 -1
- data/vendor/libgit2/src/{transports/ssh.h → libgit2/experimental.h.in} +3 -4
- data/vendor/libgit2/src/{fetch.c → libgit2/fetch.c} +105 -30
- data/vendor/libgit2/src/{fetch.h → libgit2/fetch.h} +1 -3
- data/vendor/libgit2/src/{fetchhead.c → libgit2/fetchhead.c} +30 -28
- data/vendor/libgit2/src/{filter.c → libgit2/filter.c} +132 -58
- data/vendor/libgit2/src/{filter.h → libgit2/filter.h} +26 -5
- data/vendor/libgit2/src/{win32 → libgit2}/git2.rc +3 -3
- data/vendor/libgit2/src/libgit2/grafts.c +270 -0
- data/vendor/libgit2/src/libgit2/grafts.h +35 -0
- data/vendor/libgit2/src/{graph.c → libgit2/graph.c} +1 -1
- data/vendor/libgit2/src/libgit2/hashmap_oid.h +30 -0
- data/vendor/libgit2/src/{ident.c → libgit2/ident.c} +20 -20
- data/vendor/libgit2/src/{ignore.c → libgit2/ignore.c} +44 -39
- data/vendor/libgit2/src/{ignore.h → libgit2/ignore.h} +2 -2
- data/vendor/libgit2/src/{index.c → libgit2/index.c} +460 -276
- data/vendor/libgit2/src/{index.h → libgit2/index.h} +21 -5
- data/vendor/libgit2/src/libgit2/index_map.c +95 -0
- data/vendor/libgit2/src/libgit2/index_map.h +28 -0
- data/vendor/libgit2/src/{indexer.c → libgit2/indexer.c} +208 -124
- data/vendor/libgit2/src/{iterator.c → libgit2/iterator.c} +102 -71
- data/vendor/libgit2/src/{iterator.h → libgit2/iterator.h} +8 -5
- data/vendor/libgit2/src/libgit2/libgit2.c +268 -0
- data/vendor/libgit2/src/{mailmap.c → libgit2/mailmap.c} +39 -37
- data/vendor/libgit2/src/{merge.c → libgit2/merge.c} +83 -73
- data/vendor/libgit2/src/{merge.h → libgit2/merge.h} +1 -14
- data/vendor/libgit2/src/{merge_driver.c → libgit2/merge_driver.c} +4 -4
- data/vendor/libgit2/src/{merge_file.c → libgit2/merge_file.c} +13 -5
- data/vendor/libgit2/src/{message.c → libgit2/message.c} +21 -10
- data/vendor/libgit2/src/{midx.c → libgit2/midx.c} +174 -112
- data/vendor/libgit2/src/{midx.h → libgit2/midx.h} +17 -6
- data/vendor/libgit2/src/{mwindow.c → libgit2/mwindow.c} +53 -57
- data/vendor/libgit2/src/{mwindow.h → libgit2/mwindow.h} +9 -2
- data/vendor/libgit2/src/{notes.c → libgit2/notes.c} +29 -37
- data/vendor/libgit2/src/{object.c → libgit2/object.c} +166 -35
- data/vendor/libgit2/src/{object.h → libgit2/object.h} +17 -2
- data/vendor/libgit2/src/{odb.c → libgit2/odb.c} +261 -88
- data/vendor/libgit2/src/{odb.h → libgit2/odb.h} +44 -5
- data/vendor/libgit2/src/{odb_loose.c → libgit2/odb_loose.c} +192 -134
- data/vendor/libgit2/src/{odb_mempack.c → libgit2/odb_mempack.c} +67 -22
- data/vendor/libgit2/src/{odb_pack.c → libgit2/odb_pack.c} +162 -89
- data/vendor/libgit2/src/{oid.c → libgit2/oid.c} +171 -92
- data/vendor/libgit2/src/libgit2/oid.h +284 -0
- data/vendor/libgit2/src/libgit2/oidarray.c +89 -0
- data/vendor/libgit2/src/{oidarray.h → libgit2/oidarray.h} +5 -1
- data/vendor/libgit2/src/{pack-objects.c → libgit2/pack-objects.c} +126 -66
- data/vendor/libgit2/src/{pack-objects.h → libgit2/pack-objects.h} +28 -12
- data/vendor/libgit2/src/{pack.c → libgit2/pack.c} +146 -111
- data/vendor/libgit2/src/{pack.h → libgit2/pack.h} +45 -25
- data/vendor/libgit2/src/{parse.c → libgit2/parse.c} +8 -4
- data/vendor/libgit2/src/{parse.h → libgit2/parse.h} +1 -1
- data/vendor/libgit2/src/{patch.c → libgit2/patch.c} +3 -3
- data/vendor/libgit2/src/{patch.h → libgit2/patch.h} +8 -1
- data/vendor/libgit2/src/{patch_generate.c → libgit2/patch_generate.c} +51 -16
- data/vendor/libgit2/src/{patch_generate.h → libgit2/patch_generate.h} +5 -5
- data/vendor/libgit2/src/{patch_parse.c → libgit2/patch_parse.c} +42 -34
- data/vendor/libgit2/src/libgit2/path.c +375 -0
- data/vendor/libgit2/src/libgit2/path.h +68 -0
- data/vendor/libgit2/src/{pathspec.c → libgit2/pathspec.c} +7 -7
- data/vendor/libgit2/src/{pathspec.h → libgit2/pathspec.h} +2 -2
- data/vendor/libgit2/src/{proxy.c → libgit2/proxy.c} +4 -1
- data/vendor/libgit2/src/{proxy.h → libgit2/proxy.h} +1 -1
- data/vendor/libgit2/src/{push.c → libgit2/push.c} +116 -60
- data/vendor/libgit2/src/{push.h → libgit2/push.h} +5 -16
- data/vendor/libgit2/src/{reader.c → libgit2/reader.c} +9 -9
- data/vendor/libgit2/src/{reader.h → libgit2/reader.h} +2 -2
- data/vendor/libgit2/src/{rebase.c → libgit2/rebase.c} +147 -147
- data/vendor/libgit2/src/{refdb_fs.c → libgit2/refdb_fs.c} +639 -254
- data/vendor/libgit2/src/{reflog.c → libgit2/reflog.c} +8 -7
- data/vendor/libgit2/src/{reflog.h → libgit2/reflog.h} +3 -2
- data/vendor/libgit2/src/{refs.c → libgit2/refs.c} +67 -39
- data/vendor/libgit2/src/{refs.h → libgit2/refs.h} +8 -3
- data/vendor/libgit2/src/{refspec.c → libgit2/refspec.c} +60 -38
- data/vendor/libgit2/src/{refspec.h → libgit2/refspec.h} +13 -2
- data/vendor/libgit2/src/{remote.c → libgit2/remote.c} +821 -454
- data/vendor/libgit2/src/libgit2/remote.h +101 -0
- data/vendor/libgit2/src/{repository.c → libgit2/repository.c} +1377 -594
- data/vendor/libgit2/src/{repository.h → libgit2/repository.h} +43 -12
- data/vendor/libgit2/src/{reset.c → libgit2/reset.c} +8 -5
- data/vendor/libgit2/src/{revert.c → libgit2/revert.c} +18 -22
- data/vendor/libgit2/src/{revparse.c → libgit2/revparse.c} +76 -44
- data/vendor/libgit2/src/{revwalk.c → libgit2/revwalk.c} +48 -19
- data/vendor/libgit2/src/{revwalk.h → libgit2/revwalk.h} +3 -3
- data/vendor/libgit2/src/{libgit2.c → libgit2/settings.c} +162 -95
- data/vendor/libgit2/src/{settings.h → libgit2/settings.h} +6 -2
- data/vendor/libgit2/src/{signature.c → libgit2/signature.c} +144 -21
- data/vendor/libgit2/src/{signature.h → libgit2/signature.h} +1 -2
- data/vendor/libgit2/src/{stash.c → libgit2/stash.c} +243 -68
- data/vendor/libgit2/src/{status.c → libgit2/status.c} +5 -2
- data/vendor/libgit2/src/{strarray.c → libgit2/strarray.c} +1 -0
- data/vendor/libgit2/src/libgit2/strarray.h +25 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.c +62 -67
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.c +41 -24
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl.h +2 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.c +11 -3
- data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_dynamic.h +6 -3
- data/vendor/libgit2/src/libgit2/streams/schannel.c +715 -0
- data/vendor/libgit2/src/libgit2/streams/schannel.h +28 -0
- data/vendor/libgit2/src/libgit2/streams/socket.c +428 -0
- data/vendor/libgit2/src/{streams → libgit2/streams}/socket.h +3 -1
- data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.c +79 -19
- data/vendor/libgit2/src/{streams → libgit2/streams}/tls.c +5 -0
- data/vendor/libgit2/src/{submodule.c → libgit2/submodule.c} +279 -220
- data/vendor/libgit2/src/{submodule.h → libgit2/submodule.h} +10 -11
- data/vendor/libgit2/src/libgit2/sysdir.c +650 -0
- data/vendor/libgit2/src/{sysdir.h → libgit2/sysdir.h} +55 -18
- data/vendor/libgit2/src/{tag.c → libgit2/tag.c} +74 -43
- data/vendor/libgit2/src/{tag.h → libgit2/tag.h} +2 -2
- data/vendor/libgit2/src/{trace.c → libgit2/trace.c} +1 -14
- data/vendor/libgit2/src/{trace.h → libgit2/trace.h} +5 -22
- data/vendor/libgit2/src/{trailer.c → libgit2/trailer.c} +7 -7
- data/vendor/libgit2/src/{transaction.c → libgit2/transaction.c} +27 -21
- data/vendor/libgit2/src/{transaction.h → libgit2/transaction.h} +4 -1
- data/vendor/libgit2/src/{transport.c → libgit2/transport.c} +14 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.c +7 -9
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth.h +3 -5
- data/vendor/libgit2/src/{transports/auth_negotiate.c → libgit2/transports/auth_gssapi.c} +44 -45
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_negotiate.h +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/auth_ntlm.h +1 -2
- data/vendor/libgit2/src/{transports/auth_ntlm.c → libgit2/transports/auth_ntlmclient.c} +22 -22
- data/vendor/libgit2/src/libgit2/transports/auth_sspi.c +341 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/credential.c +1 -1
- data/vendor/libgit2/src/{transports → libgit2/transports}/git.c +16 -19
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.c +49 -24
- data/vendor/libgit2/src/{transports → libgit2/transports}/http.h +0 -11
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.c +188 -134
- data/vendor/libgit2/src/{transports → libgit2/transports}/httpclient.h +10 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.c +128 -0
- data/vendor/libgit2/src/libgit2/transports/httpparser.h +99 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/local.c +159 -127
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.c +142 -165
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart.h +56 -36
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_pkt.c +307 -74
- data/vendor/libgit2/src/{transports → libgit2/transports}/smart_protocol.c +297 -97
- data/vendor/libgit2/src/libgit2/transports/ssh.c +85 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.c +347 -0
- data/vendor/libgit2/src/libgit2/transports/ssh_exec.h +26 -0
- data/vendor/libgit2/src/{transports/ssh.c → libgit2/transports/ssh_libssh2.c} +414 -268
- data/vendor/libgit2/src/libgit2/transports/ssh_libssh2.h +28 -0
- data/vendor/libgit2/src/{transports → libgit2/transports}/winhttp.c +101 -75
- data/vendor/libgit2/src/{tree-cache.c → libgit2/tree-cache.c} +30 -20
- data/vendor/libgit2/src/{tree-cache.h → libgit2/tree-cache.h} +7 -5
- data/vendor/libgit2/src/{tree.c → libgit2/tree.c} +128 -110
- data/vendor/libgit2/src/{tree.h → libgit2/tree.h} +7 -6
- data/vendor/libgit2/src/{worktree.c → libgit2/worktree.c} +160 -121
- data/vendor/libgit2/src/{worktree.h → libgit2/worktree.h} +1 -1
- data/vendor/libgit2/src/util/CMakeLists.txt +77 -0
- data/vendor/libgit2/src/{alloc.c → util/alloc.c} +69 -7
- data/vendor/libgit2/src/util/alloc.h +65 -0
- data/vendor/libgit2/src/util/allocators/debugalloc.c +73 -0
- data/vendor/libgit2/src/util/allocators/debugalloc.h +17 -0
- data/vendor/libgit2/src/util/allocators/failalloc.c +32 -0
- data/vendor/libgit2/src/util/allocators/failalloc.h +17 -0
- data/vendor/libgit2/src/util/allocators/stdalloc.c +37 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/stdalloc.h +1 -1
- data/vendor/libgit2/src/util/allocators/win32_leakcheck.c +50 -0
- data/vendor/libgit2/src/{allocators → util/allocators}/win32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{array.h → util/array.h} +25 -19
- data/vendor/libgit2/src/{assert_safe.h → util/assert_safe.h} +16 -0
- data/vendor/libgit2/src/{cc-compat.h → util/cc-compat.h} +5 -1
- data/vendor/libgit2/src/util/ctype_compat.h +70 -0
- data/vendor/libgit2/src/{date.c → util/date.c} +35 -33
- data/vendor/libgit2/src/util/date.h +45 -0
- data/vendor/libgit2/src/util/errors.c +401 -0
- data/vendor/libgit2/src/{errors.h → util/errors.h} +22 -19
- data/vendor/libgit2/src/{filebuf.c → util/filebuf.c} +35 -30
- data/vendor/libgit2/src/{filebuf.h → util/filebuf.h} +21 -8
- data/vendor/libgit2/src/{path.c → util/fs_path.c} +591 -615
- data/vendor/libgit2/src/{path.h → util/fs_path.h} +257 -181
- data/vendor/libgit2/src/{futils.c → util/futils.c} +144 -95
- data/vendor/libgit2/src/{futils.h → util/futils.h} +40 -18
- data/vendor/libgit2/src/{features.h.in → util/git2_features.h.in} +33 -2
- data/vendor/libgit2/src/{common.h → util/git2_util.h} +26 -59
- data/vendor/libgit2/src/util/hash/builtin.c +53 -0
- data/vendor/libgit2/src/{hash/sha1/openssl.h → util/hash/builtin.h} +6 -6
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.c +3 -3
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/collisiondetect.h +3 -3
- data/vendor/libgit2/src/util/hash/common_crypto.c +112 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/common_crypto.h +11 -3
- data/vendor/libgit2/src/util/hash/mbedtls.c +92 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/mbedtls.h +14 -4
- data/vendor/libgit2/src/util/hash/openssl.c +347 -0
- data/vendor/libgit2/src/util/hash/openssl.h +61 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha.h +243 -0
- data/vendor/libgit2/src/util/hash/rfc6234/sha224-256.c +601 -0
- data/vendor/libgit2/src/util/hash/sha.h +73 -0
- data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.c +1 -1
- data/vendor/libgit2/src/util/hash/win32.c +549 -0
- data/vendor/libgit2/src/util/hash/win32.h +60 -0
- data/vendor/libgit2/src/util/hash.c +158 -0
- data/vendor/libgit2/src/util/hash.h +61 -0
- data/vendor/libgit2/src/util/hashmap.h +424 -0
- data/vendor/libgit2/src/util/hashmap_str.h +43 -0
- data/vendor/libgit2/src/{integer.h → util/integer.h} +3 -1
- data/vendor/libgit2/src/{map.h → util/map.h} +1 -1
- data/vendor/libgit2/src/util/net.c +1160 -0
- data/vendor/libgit2/src/{net.h → util/net.h} +45 -4
- data/vendor/libgit2/src/{pool.c → util/pool.c} +1 -1
- data/vendor/libgit2/src/{pool.h → util/pool.h} +6 -1
- data/vendor/libgit2/src/{posix.c → util/posix.c} +57 -3
- data/vendor/libgit2/src/{posix.h → util/posix.h} +26 -1
- data/vendor/libgit2/src/{pqueue.h → util/pqueue.h} +3 -3
- data/vendor/libgit2/src/util/process.h +222 -0
- data/vendor/libgit2/src/util/rand.c +230 -0
- data/vendor/libgit2/src/util/rand.h +37 -0
- data/vendor/libgit2/src/{regexp.c → util/regexp.c} +5 -5
- data/vendor/libgit2/src/{regexp.h → util/regexp.h} +1 -1
- data/vendor/libgit2/src/{runtime.c → util/runtime.c} +1 -1
- data/vendor/libgit2/src/{runtime.h → util/runtime.h} +1 -1
- data/vendor/libgit2/src/{sortedcache.c → util/sortedcache.c} +15 -14
- data/vendor/libgit2/src/{sortedcache.h → util/sortedcache.h} +5 -5
- data/vendor/libgit2/src/util/staticstr.h +66 -0
- data/vendor/libgit2/src/{buffer.c → util/str.c} +159 -153
- data/vendor/libgit2/src/util/str.h +357 -0
- data/vendor/libgit2/src/util/strlist.c +108 -0
- data/vendor/libgit2/src/util/strlist.h +36 -0
- data/vendor/libgit2/src/{thread.c → util/thread.c} +1 -1
- data/vendor/libgit2/src/{thread.h → util/thread.h} +23 -22
- data/vendor/libgit2/src/{tsort.c → util/tsort.c} +1 -1
- data/vendor/libgit2/src/{unix → util/unix}/map.c +1 -3
- data/vendor/libgit2/src/{unix → util/unix}/posix.h +1 -6
- data/vendor/libgit2/src/util/unix/process.c +629 -0
- data/vendor/libgit2/src/{unix → util/unix}/realpath.c +24 -8
- data/vendor/libgit2/src/{utf8.c → util/utf8.c} +1 -1
- data/vendor/libgit2/src/{utf8.h → util/utf8.h} +1 -1
- data/vendor/libgit2/src/{util.c → util/util.c} +24 -19
- data/vendor/libgit2/src/{util.h → util/util.h} +30 -81
- data/vendor/libgit2/src/{varint.h → util/varint.h} +1 -1
- data/vendor/libgit2/src/{vector.c → util/vector.c} +3 -3
- data/vendor/libgit2/src/{vector.h → util/vector.h} +4 -4
- data/vendor/libgit2/src/{wildmatch.h → util/wildmatch.h} +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/dir.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/error.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/map.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.c +148 -17
- data/vendor/libgit2/src/{win32 → util/win32}/path_w32.h +3 -1
- data/vendor/libgit2/src/{win32 → util/win32}/posix.h +1 -2
- data/vendor/libgit2/src/{win32 → util/win32}/posix_w32.c +42 -35
- data/vendor/libgit2/src/util/win32/precompiled.c +1 -0
- data/vendor/libgit2/src/{win32 → util/win32}/precompiled.h +1 -1
- data/vendor/libgit2/src/util/win32/process.c +506 -0
- data/vendor/libgit2/src/{win32 → util/win32}/thread.h +1 -1
- data/vendor/libgit2/src/util/win32/utf-conv.c +144 -0
- data/vendor/libgit2/src/util/win32/utf-conv.h +127 -0
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.c +2 -3
- data/vendor/libgit2/src/{win32 → util/win32}/w32_buffer.h +3 -4
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_leakcheck.h +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.c +1 -1
- data/vendor/libgit2/src/{win32 → util/win32}/w32_util.h +1 -1
- data/vendor/libgit2/src/{zstream.c → util/zstream.c} +5 -5
- data/vendor/libgit2/src/{zstream.h → util/zstream.h} +5 -5
- metadata +431 -362
- data/vendor/libgit2/cmake/FindIconv.cmake +0 -45
- data/vendor/libgit2/deps/http-parser/CMakeLists.txt +0 -6
- data/vendor/libgit2/deps/http-parser/COPYING +0 -23
- data/vendor/libgit2/deps/http-parser/http_parser.c +0 -2182
- data/vendor/libgit2/deps/http-parser/http_parser.h +0 -305
- data/vendor/libgit2/deps/zlib/COPYING +0 -27
- data/vendor/libgit2/include/git2/sys/reflog.h +0 -21
- data/vendor/libgit2/src/alloc.h +0 -40
- data/vendor/libgit2/src/allocators/failalloc.c +0 -92
- data/vendor/libgit2/src/allocators/failalloc.h +0 -23
- data/vendor/libgit2/src/allocators/stdalloc.c +0 -150
- data/vendor/libgit2/src/allocators/win32_leakcheck.c +0 -118
- data/vendor/libgit2/src/buffer.h +0 -374
- data/vendor/libgit2/src/commit.h +0 -46
- data/vendor/libgit2/src/config_entries.c +0 -237
- data/vendor/libgit2/src/config_entries.h +0 -24
- data/vendor/libgit2/src/config_mem.c +0 -220
- data/vendor/libgit2/src/errors.c +0 -238
- data/vendor/libgit2/src/hash/sha1/common_crypto.c +0 -57
- data/vendor/libgit2/src/hash/sha1/generic.c +0 -300
- data/vendor/libgit2/src/hash/sha1/generic.h +0 -19
- data/vendor/libgit2/src/hash/sha1/mbedtls.c +0 -46
- data/vendor/libgit2/src/hash/sha1/openssl.c +0 -59
- data/vendor/libgit2/src/hash/sha1/win32.c +0 -333
- data/vendor/libgit2/src/hash/sha1/win32.h +0 -128
- data/vendor/libgit2/src/hash/sha1.h +0 -38
- data/vendor/libgit2/src/hash.c +0 -110
- data/vendor/libgit2/src/hash.h +0 -46
- data/vendor/libgit2/src/idxmap.c +0 -157
- data/vendor/libgit2/src/idxmap.h +0 -177
- data/vendor/libgit2/src/khash.h +0 -615
- data/vendor/libgit2/src/libgit2.h +0 -15
- data/vendor/libgit2/src/message.h +0 -17
- data/vendor/libgit2/src/net.c +0 -540
- data/vendor/libgit2/src/netops.c +0 -125
- data/vendor/libgit2/src/netops.h +0 -68
- data/vendor/libgit2/src/offmap.c +0 -101
- data/vendor/libgit2/src/offmap.h +0 -133
- data/vendor/libgit2/src/oid.h +0 -51
- data/vendor/libgit2/src/oidarray.c +0 -43
- data/vendor/libgit2/src/oidmap.c +0 -107
- data/vendor/libgit2/src/oidmap.h +0 -128
- data/vendor/libgit2/src/remote.h +0 -55
- data/vendor/libgit2/src/streams/socket.c +0 -239
- data/vendor/libgit2/src/strmap.c +0 -100
- data/vendor/libgit2/src/strmap.h +0 -131
- data/vendor/libgit2/src/sysdir.c +0 -347
- data/vendor/libgit2/src/threadstate.c +0 -84
- data/vendor/libgit2/src/threadstate.h +0 -24
- data/vendor/libgit2/src/win32/findfile.c +0 -230
- data/vendor/libgit2/src/win32/findfile.h +0 -19
- data/vendor/libgit2/src/win32/utf-conv.c +0 -146
- data/vendor/libgit2/src/win32/utf-conv.h +0 -60
- /data/vendor/libgit2/{src → deps}/xdiff/xemit.h +0 -0
- /data/vendor/libgit2/{src → deps}/xdiff/xprepare.h +0 -0
- /data/vendor/libgit2/{src → deps}/xdiff/xtypes.h +0 -0
- /data/vendor/libgit2/src/{win32 → cli/win32}/precompiled.c +0 -0
- /data/vendor/libgit2/src/{attr.h → libgit2/attr.h} +0 -0
- /data/vendor/libgit2/src/{blame_git.h → libgit2/blame_git.h} +0 -0
- /data/vendor/libgit2/src/{config_parse.h → libgit2/config_parse.h} +0 -0
- /data/vendor/libgit2/src/{delta.c → libgit2/delta.c} +0 -0
- /data/vendor/libgit2/src/{delta.h → libgit2/delta.h} +0 -0
- /data/vendor/libgit2/src/{diff_file.h → libgit2/diff_file.h} +0 -0
- /data/vendor/libgit2/src/{diff_parse.h → libgit2/diff_parse.h} +0 -0
- /data/vendor/libgit2/src/{diff_tform.h → libgit2/diff_tform.h} +0 -0
- /data/vendor/libgit2/src/{fetchhead.h → libgit2/fetchhead.h} +0 -0
- /data/vendor/libgit2/src/{hashsig.c → libgit2/hashsig.c} +0 -0
- /data/vendor/libgit2/src/{indexer.h → libgit2/indexer.h} +0 -0
- /data/vendor/libgit2/src/{mailmap.h → libgit2/mailmap.h} +0 -0
- /data/vendor/libgit2/src/{merge_driver.h → libgit2/merge_driver.h} +0 -0
- /data/vendor/libgit2/src/{notes.h → libgit2/notes.h} +0 -0
- /data/vendor/libgit2/src/{object_api.c → libgit2/object_api.c} +0 -0
- /data/vendor/libgit2/src/{patch_parse.h → libgit2/patch_parse.h} +0 -0
- /data/vendor/libgit2/src/{refdb.c → libgit2/refdb.c} +0 -0
- /data/vendor/libgit2/src/{refdb.h → libgit2/refdb.h} +0 -0
- /data/vendor/libgit2/src/{repo_template.h → libgit2/repo_template.h} +0 -0
- /data/vendor/libgit2/src/{status.h → libgit2/status.h} +0 -0
- /data/vendor/libgit2/src/{stream.h → libgit2/stream.h} +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/mbedtls.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/openssl_legacy.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.c +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/registry.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/stransport.h +0 -0
- /data/vendor/libgit2/src/{streams → libgit2/streams}/tls.h +0 -0
- /data/vendor/libgit2/src/{transports → libgit2/transports}/credential_helpers.c +0 -0
- /data/vendor/libgit2/src/{userdiff.h → libgit2/userdiff.h} +0 -0
- /data/vendor/libgit2/src/{bitvec.h → util/bitvec.h} +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/sha1.h +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.c +0 -0
- /data/vendor/libgit2/src/{hash/sha1 → util/hash}/sha1dc/ubc_check.h +0 -0
- /data/vendor/libgit2/src/{pqueue.c → util/pqueue.c} +0 -0
- /data/vendor/libgit2/src/{strnlen.h → util/strnlen.h} +0 -0
- /data/vendor/libgit2/src/{unix → util/unix}/pthread.h +0 -0
- /data/vendor/libgit2/src/{varint.c → util/varint.c} +0 -0
- /data/vendor/libgit2/src/{wildmatch.c → util/wildmatch.c} +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/dir.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/mingw-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/msvc-compat.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/reparse.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/thread.c +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/version.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/w32_common.h +0 -0
- /data/vendor/libgit2/src/{win32 → util/win32}/win32-compat.h +0 -0
@@ -0,0 +1,28 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright (C) the libgit2 contributors. All rights reserved.
|
3
|
+
*
|
4
|
+
* This file is part of libgit2, distributed under the GNU GPL v2 with
|
5
|
+
* a Linking Exception. For full terms see the included COPYING file.
|
6
|
+
*/
|
7
|
+
#ifndef INCLUDE_transports_libssh2_h__
|
8
|
+
#define INCLUDE_transports_libssh2_h__
|
9
|
+
|
10
|
+
#include "common.h"
|
11
|
+
|
12
|
+
#include "git2.h"
|
13
|
+
#include "git2/transport.h"
|
14
|
+
#include "git2/sys/transport.h"
|
15
|
+
|
16
|
+
int git_transport_ssh_libssh2_global_init(void);
|
17
|
+
|
18
|
+
int git_smart_subtransport_ssh_libssh2(
|
19
|
+
git_smart_subtransport **out,
|
20
|
+
git_transport *owner,
|
21
|
+
void *param);
|
22
|
+
|
23
|
+
int git_smart_subtransport_ssh_libssh2_set_paths(
|
24
|
+
git_smart_subtransport *subtransport,
|
25
|
+
const char *cmd_uploadpack,
|
26
|
+
const char *cmd_receivepack);
|
27
|
+
|
28
|
+
#endif
|
@@ -11,9 +11,8 @@
|
|
11
11
|
|
12
12
|
#include "git2.h"
|
13
13
|
#include "git2/transport.h"
|
14
|
-
#include "buffer.h"
|
15
14
|
#include "posix.h"
|
16
|
-
#include "
|
15
|
+
#include "str.h"
|
17
16
|
#include "smart.h"
|
18
17
|
#include "remote.h"
|
19
18
|
#include "repository.h"
|
@@ -99,7 +98,7 @@ typedef enum {
|
|
99
98
|
GIT_WINHTTP_AUTH_BASIC = 1,
|
100
99
|
GIT_WINHTTP_AUTH_NTLM = 2,
|
101
100
|
GIT_WINHTTP_AUTH_NEGOTIATE = 4,
|
102
|
-
GIT_WINHTTP_AUTH_DIGEST = 8
|
101
|
+
GIT_WINHTTP_AUTH_DIGEST = 8
|
103
102
|
} winhttp_authmechanism_t;
|
104
103
|
|
105
104
|
typedef struct {
|
@@ -158,10 +157,10 @@ static int apply_userpass_credentials(HINTERNET request, DWORD target, int mecha
|
|
158
157
|
goto done;
|
159
158
|
}
|
160
159
|
|
161
|
-
if ((error = user_len =
|
160
|
+
if ((error = user_len = git_utf8_to_16_alloc(&user, c->username)) < 0)
|
162
161
|
goto done;
|
163
162
|
|
164
|
-
if ((error = pass_len =
|
163
|
+
if ((error = pass_len = git_utf8_to_16_alloc(&pass, c->password)) < 0)
|
165
164
|
goto done;
|
166
165
|
|
167
166
|
if (!WinHttpSetCredentials(request, target, native_scheme, user, pass, NULL)) {
|
@@ -242,7 +241,7 @@ static int acquire_fallback_cred(
|
|
242
241
|
HRESULT hCoInitResult;
|
243
242
|
|
244
243
|
/* Convert URL to wide characters */
|
245
|
-
if (
|
244
|
+
if (git_utf8_to_16_alloc(&wide_url, url) < 0) {
|
246
245
|
git_error_set(GIT_ERROR_OS, "failed to convert string to wide form");
|
247
246
|
return -1;
|
248
247
|
}
|
@@ -293,14 +292,14 @@ static int certificate_check(winhttp_stream *s, int valid)
|
|
293
292
|
git_cert_x509 cert;
|
294
293
|
|
295
294
|
/* If there is no override, we should fail if WinHTTP doesn't think it's fine */
|
296
|
-
if (t->owner->
|
297
|
-
if (
|
295
|
+
if (t->owner->connect_opts.callbacks.certificate_check == NULL && !valid) {
|
296
|
+
if (git_error_last()->klass == GIT_ERROR_NONE)
|
298
297
|
git_error_set(GIT_ERROR_HTTP, "unknown certificate check failure");
|
299
298
|
|
300
299
|
return GIT_ECERTIFICATE;
|
301
300
|
}
|
302
301
|
|
303
|
-
if (t->owner->
|
302
|
+
if (t->owner->connect_opts.callbacks.certificate_check == NULL || git__strcmp(t->server.url.scheme, "https") != 0)
|
304
303
|
return 0;
|
305
304
|
|
306
305
|
if (!WinHttpQueryOption(s->request, WINHTTP_OPTION_SERVER_CERT_CONTEXT, &cert_ctx, &cert_ctx_size)) {
|
@@ -312,13 +311,13 @@ static int certificate_check(winhttp_stream *s, int valid)
|
|
312
311
|
cert.parent.cert_type = GIT_CERT_X509;
|
313
312
|
cert.data = cert_ctx->pbCertEncoded;
|
314
313
|
cert.len = cert_ctx->cbCertEncoded;
|
315
|
-
error = t->owner->
|
314
|
+
error = t->owner->connect_opts.callbacks.certificate_check((git_cert *) &cert, valid, t->server.url.host, t->owner->connect_opts.callbacks.payload);
|
316
315
|
CertFreeCertificateContext(cert_ctx);
|
317
316
|
|
318
317
|
if (error == GIT_PASSTHROUGH)
|
319
318
|
error = valid ? 0 : GIT_ECERTIFICATE;
|
320
319
|
|
321
|
-
if (error < 0 &&
|
320
|
+
if (error < 0 && git_error_last()->klass == GIT_ERROR_NONE)
|
322
321
|
git_error_set(GIT_ERROR_HTTP, "user cancelled certificate check");
|
323
322
|
|
324
323
|
return error;
|
@@ -372,7 +371,7 @@ static int apply_credentials(
|
|
372
371
|
static int winhttp_stream_connect(winhttp_stream *s)
|
373
372
|
{
|
374
373
|
winhttp_subtransport *t = OWNING_SUBTRANSPORT(s);
|
375
|
-
|
374
|
+
git_str buf = GIT_STR_INIT;
|
376
375
|
char *proxy_url = NULL;
|
377
376
|
wchar_t ct[MAX_CONTENT_TYPE_LEN];
|
378
377
|
LPCWSTR types[] = { L"*/*", NULL };
|
@@ -391,13 +390,13 @@ static int winhttp_stream_connect(winhttp_stream *s)
|
|
391
390
|
if ((git__suffixcmp(t->server.url.path, "/") == 0) && (git__prefixcmp(service_url, "/") == 0))
|
392
391
|
service_url++;
|
393
392
|
/* Prepare URL */
|
394
|
-
|
393
|
+
git_str_printf(&buf, "%s%s", t->server.url.path, service_url);
|
395
394
|
|
396
|
-
if (
|
395
|
+
if (git_str_oom(&buf))
|
397
396
|
return -1;
|
398
397
|
|
399
398
|
/* Convert URL to wide characters */
|
400
|
-
if (
|
399
|
+
if (git_utf8_to_16_alloc(&s->request_uri, git_str_cstr(&buf)) < 0) {
|
401
400
|
git_error_set(GIT_ERROR_OS, "failed to convert string to wide form");
|
402
401
|
goto on_error;
|
403
402
|
}
|
@@ -426,7 +425,7 @@ static int winhttp_stream_connect(winhttp_stream *s)
|
|
426
425
|
goto on_error;
|
427
426
|
}
|
428
427
|
|
429
|
-
proxy_opts = &t->owner->
|
428
|
+
proxy_opts = &t->owner->connect_opts.proxy_opts;
|
430
429
|
if (proxy_opts->type == GIT_PROXY_AUTO) {
|
431
430
|
/* Set proxy if necessary */
|
432
431
|
if (git_remote__http_proxy(&proxy_url, t->owner->owner, &t->server.url) < 0)
|
@@ -437,44 +436,44 @@ static int winhttp_stream_connect(winhttp_stream *s)
|
|
437
436
|
GIT_ERROR_CHECK_ALLOC(proxy_url);
|
438
437
|
}
|
439
438
|
|
440
|
-
if (proxy_url) {
|
441
|
-
|
439
|
+
if (proxy_url && *proxy_url) {
|
440
|
+
git_str processed_url = GIT_STR_INIT;
|
442
441
|
WINHTTP_PROXY_INFO proxy_info;
|
443
442
|
wchar_t *proxy_wide;
|
444
443
|
|
445
444
|
git_net_url_dispose(&t->proxy.url);
|
446
445
|
|
447
|
-
if ((error =
|
446
|
+
if ((error = git_net_url_parse_http(&t->proxy.url, proxy_url)) < 0)
|
448
447
|
goto on_error;
|
449
448
|
|
450
|
-
if (
|
449
|
+
if (!git_net_url_valid(&t->proxy.url)) {
|
451
450
|
git_error_set(GIT_ERROR_HTTP, "invalid URL: '%s'", proxy_url);
|
452
451
|
error = -1;
|
453
452
|
goto on_error;
|
454
453
|
}
|
455
454
|
|
456
|
-
|
457
|
-
|
455
|
+
git_str_puts(&processed_url, t->proxy.url.scheme);
|
456
|
+
git_str_PUTS(&processed_url, "://");
|
458
457
|
|
459
458
|
if (git_net_url_is_ipv6(&t->proxy.url))
|
460
|
-
|
459
|
+
git_str_putc(&processed_url, '[');
|
461
460
|
|
462
|
-
|
461
|
+
git_str_puts(&processed_url, t->proxy.url.host);
|
463
462
|
|
464
463
|
if (git_net_url_is_ipv6(&t->proxy.url))
|
465
|
-
|
464
|
+
git_str_putc(&processed_url, ']');
|
466
465
|
|
467
466
|
if (!git_net_url_is_default_port(&t->proxy.url))
|
468
|
-
|
467
|
+
git_str_printf(&processed_url, ":%s", t->proxy.url.port);
|
469
468
|
|
470
|
-
if (
|
469
|
+
if (git_str_oom(&processed_url)) {
|
471
470
|
error = -1;
|
472
471
|
goto on_error;
|
473
472
|
}
|
474
473
|
|
475
474
|
/* Convert URL to wide characters */
|
476
|
-
error =
|
477
|
-
|
475
|
+
error = git_utf8_to_16_alloc(&proxy_wide, processed_url.ptr);
|
476
|
+
git_str_dispose(&processed_url);
|
478
477
|
if (error < 0)
|
479
478
|
goto on_error;
|
480
479
|
|
@@ -525,13 +524,13 @@ static int winhttp_stream_connect(winhttp_stream *s)
|
|
525
524
|
|
526
525
|
if (post_verb == s->verb) {
|
527
526
|
/* Send Content-Type and Accept headers -- only necessary on a POST */
|
528
|
-
|
529
|
-
if (
|
527
|
+
git_str_clear(&buf);
|
528
|
+
if (git_str_printf(&buf,
|
530
529
|
"Content-Type: application/x-git-%s-request",
|
531
530
|
s->service) < 0)
|
532
531
|
goto on_error;
|
533
532
|
|
534
|
-
if (
|
533
|
+
if (git_utf8_to_16(ct, MAX_CONTENT_TYPE_LEN, git_str_cstr(&buf)) < 0) {
|
535
534
|
git_error_set(GIT_ERROR_OS, "failed to convert content-type to wide characters");
|
536
535
|
goto on_error;
|
537
536
|
}
|
@@ -542,13 +541,13 @@ static int winhttp_stream_connect(winhttp_stream *s)
|
|
542
541
|
goto on_error;
|
543
542
|
}
|
544
543
|
|
545
|
-
|
546
|
-
if (
|
544
|
+
git_str_clear(&buf);
|
545
|
+
if (git_str_printf(&buf,
|
547
546
|
"Accept: application/x-git-%s-result",
|
548
547
|
s->service) < 0)
|
549
548
|
goto on_error;
|
550
549
|
|
551
|
-
if (
|
550
|
+
if (git_utf8_to_16(ct, MAX_CONTENT_TYPE_LEN, git_str_cstr(&buf)) < 0) {
|
552
551
|
git_error_set(GIT_ERROR_OS, "failed to convert accept header to wide characters");
|
553
552
|
goto on_error;
|
554
553
|
}
|
@@ -560,29 +559,26 @@ static int winhttp_stream_connect(winhttp_stream *s)
|
|
560
559
|
}
|
561
560
|
}
|
562
561
|
|
563
|
-
for (i = 0; i < t->owner->custom_headers.count; i++) {
|
564
|
-
if (t->owner->custom_headers.strings[i]) {
|
565
|
-
|
566
|
-
|
567
|
-
|
568
|
-
|
562
|
+
for (i = 0; i < t->owner->connect_opts.custom_headers.count; i++) {
|
563
|
+
if (t->owner->connect_opts.custom_headers.strings[i]) {
|
564
|
+
wchar_t *custom_header_wide = NULL;
|
565
|
+
|
566
|
+
git_str_clear(&buf);
|
567
|
+
git_str_puts(&buf, t->owner->connect_opts.custom_headers.strings[i]);
|
568
|
+
|
569
|
+
/* Convert header to wide characters */
|
570
|
+
if ((error = git_utf8_to_16_alloc(&custom_header_wide, git_str_cstr(&buf))) < 0)
|
569
571
|
goto on_error;
|
570
|
-
}
|
571
572
|
|
572
|
-
if (!WinHttpAddRequestHeaders(s->request,
|
573
|
+
if (!WinHttpAddRequestHeaders(s->request, custom_header_wide, (ULONG)-1L,
|
573
574
|
WINHTTP_ADDREQ_FLAG_ADD | WINHTTP_ADDREQ_FLAG_REPLACE)) {
|
574
575
|
git_error_set(GIT_ERROR_OS, "failed to add a header to the request");
|
576
|
+
git__free(custom_header_wide);
|
575
577
|
goto on_error;
|
576
578
|
}
|
577
|
-
}
|
578
|
-
}
|
579
|
-
|
580
|
-
/* If requested, disable certificate validation */
|
581
|
-
if (strcmp(t->server.url.scheme, "https") == 0) {
|
582
|
-
int flags;
|
583
579
|
|
584
|
-
|
585
|
-
|
580
|
+
git__free(custom_header_wide);
|
581
|
+
}
|
586
582
|
}
|
587
583
|
|
588
584
|
if ((error = apply_credentials(s->request, &t->server.url, WINHTTP_AUTH_TARGET_SERVER, t->server.cred, t->server.auth_mechanisms)) < 0)
|
@@ -597,7 +593,7 @@ on_error:
|
|
597
593
|
winhttp_stream_close(s);
|
598
594
|
|
599
595
|
git__free(proxy_url);
|
600
|
-
|
596
|
+
git_str_dispose(&buf);
|
601
597
|
return error;
|
602
598
|
}
|
603
599
|
|
@@ -646,23 +642,23 @@ static int parse_unauthorized_response(
|
|
646
642
|
static int write_chunk(HINTERNET request, const char *buffer, size_t len)
|
647
643
|
{
|
648
644
|
DWORD bytes_written;
|
649
|
-
|
645
|
+
git_str buf = GIT_STR_INIT;
|
650
646
|
|
651
647
|
/* Chunk header */
|
652
|
-
|
648
|
+
git_str_printf(&buf, "%"PRIXZ"\r\n", len);
|
653
649
|
|
654
|
-
if (
|
650
|
+
if (git_str_oom(&buf))
|
655
651
|
return -1;
|
656
652
|
|
657
653
|
if (!WinHttpWriteData(request,
|
658
|
-
|
654
|
+
git_str_cstr(&buf), (DWORD)git_str_len(&buf),
|
659
655
|
&bytes_written)) {
|
660
|
-
|
656
|
+
git_str_dispose(&buf);
|
661
657
|
git_error_set(GIT_ERROR_OS, "failed to write chunk header");
|
662
658
|
return -1;
|
663
659
|
}
|
664
660
|
|
665
|
-
|
661
|
+
git_str_dispose(&buf);
|
666
662
|
|
667
663
|
/* Chunk body */
|
668
664
|
if (!WinHttpWriteData(request,
|
@@ -750,17 +746,45 @@ static void CALLBACK winhttp_status(
|
|
750
746
|
}
|
751
747
|
}
|
752
748
|
|
749
|
+
static int user_agent(bool *exists, git_str *out)
|
750
|
+
{
|
751
|
+
const char *product = git_settings__user_agent_product();
|
752
|
+
const char *comment = git_settings__user_agent();
|
753
|
+
|
754
|
+
GIT_ASSERT(product && comment);
|
755
|
+
|
756
|
+
if (!*product) {
|
757
|
+
*exists = false;
|
758
|
+
return 0;
|
759
|
+
}
|
760
|
+
|
761
|
+
git_str_puts(out, product);
|
762
|
+
|
763
|
+
if (*comment) {
|
764
|
+
git_str_puts(out, " (");
|
765
|
+
git_str_puts(out, comment);
|
766
|
+
git_str_puts(out, ")");
|
767
|
+
}
|
768
|
+
|
769
|
+
if (git_str_oom(out))
|
770
|
+
return -1;
|
771
|
+
|
772
|
+
*exists = true;
|
773
|
+
return 0;
|
774
|
+
}
|
775
|
+
|
753
776
|
static int winhttp_connect(
|
754
777
|
winhttp_subtransport *t)
|
755
778
|
{
|
756
779
|
wchar_t *wide_host = NULL;
|
757
780
|
int32_t port;
|
758
781
|
wchar_t *wide_ua = NULL;
|
759
|
-
|
782
|
+
git_str ipv6 = GIT_STR_INIT, ua = GIT_STR_INIT;
|
760
783
|
const char *host;
|
761
784
|
int error = -1;
|
762
785
|
int default_timeout = TIMEOUT_INFINITE;
|
763
786
|
int default_connect_timeout = DEFAULT_CONNECT_TIMEOUT;
|
787
|
+
bool has_ua = true;
|
764
788
|
DWORD protocols =
|
765
789
|
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1 |
|
766
790
|
WINHTTP_FLAG_SECURE_PROTOCOL_TLS1_1 |
|
@@ -777,7 +801,7 @@ static int winhttp_connect(
|
|
777
801
|
|
778
802
|
/* IPv6? Add braces around the host. */
|
779
803
|
if (git_net_url_is_ipv6(&t->server.url)) {
|
780
|
-
if (
|
804
|
+
if (git_str_printf(&ipv6, "[%s]", t->server.url.host) < 0)
|
781
805
|
goto on_error;
|
782
806
|
|
783
807
|
host = ipv6.ptr;
|
@@ -786,16 +810,16 @@ static int winhttp_connect(
|
|
786
810
|
}
|
787
811
|
|
788
812
|
/* Prepare host */
|
789
|
-
if (
|
813
|
+
if (git_utf8_to_16_alloc(&wide_host, host) < 0) {
|
790
814
|
git_error_set(GIT_ERROR_OS, "unable to convert host to wide characters");
|
791
815
|
goto on_error;
|
792
816
|
}
|
793
817
|
|
794
|
-
|
795
|
-
if (git_http__user_agent(&ua) < 0)
|
818
|
+
if (user_agent(&has_ua, &ua) < 0)
|
796
819
|
goto on_error;
|
797
820
|
|
798
|
-
if (
|
821
|
+
if (has_ua &&
|
822
|
+
git_utf8_to_16_alloc(&wide_ua, git_str_cstr(&ua)) < 0) {
|
799
823
|
git_error_set(GIT_ERROR_OS, "unable to convert host to wide characters");
|
800
824
|
goto on_error;
|
801
825
|
}
|
@@ -863,8 +887,8 @@ on_error:
|
|
863
887
|
if (error < 0)
|
864
888
|
winhttp_close_connection(t);
|
865
889
|
|
866
|
-
|
867
|
-
|
890
|
+
git_str_dispose(&ua);
|
891
|
+
git_str_dispose(&ipv6);
|
868
892
|
git__free(wide_host);
|
869
893
|
git__free(wide_ua);
|
870
894
|
|
@@ -937,7 +961,7 @@ static int send_request(winhttp_stream *s, size_t len, bool chunked)
|
|
937
961
|
(!request_failed && s->status_sending_request_reached)) {
|
938
962
|
git_error_clear();
|
939
963
|
if ((error = certificate_check(s, cert_valid)) < 0) {
|
940
|
-
if (
|
964
|
+
if (git_error_last()->klass == GIT_ERROR_NONE)
|
941
965
|
git_error_set(GIT_ERROR_OS, "user cancelled certificate check");
|
942
966
|
|
943
967
|
return error;
|
@@ -1185,7 +1209,7 @@ replay:
|
|
1185
1209
|
}
|
1186
1210
|
|
1187
1211
|
/* Convert the Location header to UTF-8 */
|
1188
|
-
if (
|
1212
|
+
if (git_utf8_from_16_alloc(&location8, location) < 0) {
|
1189
1213
|
git_error_set(GIT_ERROR_OS, "failed to convert Location header to UTF-8");
|
1190
1214
|
git__free(location);
|
1191
1215
|
return -1;
|
@@ -1197,8 +1221,10 @@ replay:
|
|
1197
1221
|
winhttp_stream_close(s);
|
1198
1222
|
|
1199
1223
|
if (!git__prefixcmp_icase(location8, prefix_https)) {
|
1224
|
+
bool follow = (t->owner->connect_opts.follow_redirects != GIT_REMOTE_REDIRECT_NONE);
|
1225
|
+
|
1200
1226
|
/* Upgrade to secure connection; disconnect and start over */
|
1201
|
-
if (git_net_url_apply_redirect(&t->server.url, location8, s->service_url) < 0) {
|
1227
|
+
if (git_net_url_apply_redirect(&t->server.url, location8, follow, s->service_url) < 0) {
|
1202
1228
|
git__free(location8);
|
1203
1229
|
return -1;
|
1204
1230
|
}
|
@@ -1218,8 +1244,8 @@ replay:
|
|
1218
1244
|
int error = acquire_credentials(s->request,
|
1219
1245
|
&t->server,
|
1220
1246
|
t->owner->url,
|
1221
|
-
t->owner->
|
1222
|
-
t->owner->
|
1247
|
+
t->owner->connect_opts.callbacks.credentials,
|
1248
|
+
t->owner->connect_opts.callbacks.payload);
|
1223
1249
|
|
1224
1250
|
if (error < 0) {
|
1225
1251
|
return error;
|
@@ -1231,9 +1257,9 @@ replay:
|
|
1231
1257
|
} else if (status_code == HTTP_STATUS_PROXY_AUTH_REQ) {
|
1232
1258
|
int error = acquire_credentials(s->request,
|
1233
1259
|
&t->proxy,
|
1234
|
-
t->owner->
|
1235
|
-
t->owner->
|
1236
|
-
t->owner->
|
1260
|
+
t->owner->connect_opts.proxy_opts.url,
|
1261
|
+
t->owner->connect_opts.proxy_opts.credentials,
|
1262
|
+
t->owner->connect_opts.proxy_opts.payload);
|
1237
1263
|
|
1238
1264
|
if (error < 0) {
|
1239
1265
|
return error;
|
@@ -1255,7 +1281,7 @@ replay:
|
|
1255
1281
|
else
|
1256
1282
|
p_snprintf(expected_content_type_8, MAX_CONTENT_TYPE_LEN, "application/x-git-%s-advertisement", s->service);
|
1257
1283
|
|
1258
|
-
if (
|
1284
|
+
if (git_utf8_to_16(expected_content_type, MAX_CONTENT_TYPE_LEN, expected_content_type_8) < 0) {
|
1259
1285
|
git_error_set(GIT_ERROR_OS, "failed to convert expected content-type to wide characters");
|
1260
1286
|
return -1;
|
1261
1287
|
}
|
@@ -71,12 +71,16 @@ const git_tree_cache *git_tree_cache_get(const git_tree_cache *tree, const char
|
|
71
71
|
}
|
72
72
|
}
|
73
73
|
|
74
|
-
static int read_tree_internal(
|
75
|
-
|
76
|
-
|
74
|
+
static int read_tree_internal(
|
75
|
+
git_tree_cache **out,
|
76
|
+
const char **buffer_in,
|
77
|
+
const char *buffer_end,
|
78
|
+
git_oid_t oid_type,
|
79
|
+
git_pool *pool)
|
77
80
|
{
|
78
81
|
git_tree_cache *tree = NULL;
|
79
82
|
const char *name_start, *buffer;
|
83
|
+
size_t oid_size = git_oid_size(oid_type);
|
80
84
|
int count;
|
81
85
|
|
82
86
|
buffer = name_start = *buffer_in;
|
@@ -87,7 +91,7 @@ static int read_tree_internal(git_tree_cache **out,
|
|
87
91
|
if (++buffer >= buffer_end)
|
88
92
|
goto corrupted;
|
89
93
|
|
90
|
-
if (git_tree_cache_new(&tree, name_start, pool) < 0)
|
94
|
+
if (git_tree_cache_new(&tree, name_start, oid_type, pool) < 0)
|
91
95
|
return -1;
|
92
96
|
|
93
97
|
/* Blank-terminated ASCII decimal number of entries in this tree */
|
@@ -108,14 +112,14 @@ static int read_tree_internal(git_tree_cache **out,
|
|
108
112
|
if (*buffer != '\n' || ++buffer > buffer_end)
|
109
113
|
goto corrupted;
|
110
114
|
|
111
|
-
/* The
|
115
|
+
/* The OID is only there if it's not invalidated */
|
112
116
|
if (tree->entry_count >= 0) {
|
113
117
|
/* 160-bit SHA-1 for this tree and it's children */
|
114
|
-
if (buffer +
|
118
|
+
if (buffer + oid_size > buffer_end)
|
115
119
|
goto corrupted;
|
116
120
|
|
117
|
-
|
118
|
-
buffer +=
|
121
|
+
git_oid__fromraw(&tree->oid, (const unsigned char *)buffer, oid_type);
|
122
|
+
buffer += oid_size;
|
119
123
|
}
|
120
124
|
|
121
125
|
/* Parse children: */
|
@@ -130,7 +134,7 @@ static int read_tree_internal(git_tree_cache **out,
|
|
130
134
|
memset(tree->children, 0x0, bufsize);
|
131
135
|
|
132
136
|
for (i = 0; i < tree->children_count; ++i) {
|
133
|
-
if (read_tree_internal(&tree->children[i], &buffer, buffer_end, pool) < 0)
|
137
|
+
if (read_tree_internal(&tree->children[i], &buffer, buffer_end, oid_type, pool) < 0)
|
134
138
|
goto corrupted;
|
135
139
|
}
|
136
140
|
}
|
@@ -144,11 +148,16 @@ static int read_tree_internal(git_tree_cache **out,
|
|
144
148
|
return -1;
|
145
149
|
}
|
146
150
|
|
147
|
-
int git_tree_cache_read(
|
151
|
+
int git_tree_cache_read(
|
152
|
+
git_tree_cache **tree,
|
153
|
+
const char *buffer,
|
154
|
+
size_t buffer_size,
|
155
|
+
git_oid_t oid_type,
|
156
|
+
git_pool *pool)
|
148
157
|
{
|
149
158
|
const char *buffer_end = buffer + buffer_size;
|
150
159
|
|
151
|
-
if (read_tree_internal(tree, &buffer, buffer_end, pool) < 0)
|
160
|
+
if (read_tree_internal(tree, &buffer, buffer_end, oid_type, pool) < 0)
|
152
161
|
return -1;
|
153
162
|
|
154
163
|
if (buffer < buffer_end) {
|
@@ -201,7 +210,7 @@ static int read_tree_recursive(git_tree_cache *cache, const git_tree *tree, git_
|
|
201
210
|
continue;
|
202
211
|
}
|
203
212
|
|
204
|
-
if ((error = git_tree_cache_new(&cache->children[j], git_tree_entry_name(entry), pool)) < 0)
|
213
|
+
if ((error = git_tree_cache_new(&cache->children[j], git_tree_entry_name(entry), cache->oid_type, pool)) < 0)
|
205
214
|
return error;
|
206
215
|
|
207
216
|
if ((error = git_tree_lookup(&subtree, repo, git_tree_entry_id(entry))) < 0)
|
@@ -219,12 +228,12 @@ static int read_tree_recursive(git_tree_cache *cache, const git_tree *tree, git_
|
|
219
228
|
return 0;
|
220
229
|
}
|
221
230
|
|
222
|
-
int git_tree_cache_read_tree(git_tree_cache **out, const git_tree *tree, git_pool *pool)
|
231
|
+
int git_tree_cache_read_tree(git_tree_cache **out, const git_tree *tree, git_oid_t oid_type, git_pool *pool)
|
223
232
|
{
|
224
233
|
int error;
|
225
234
|
git_tree_cache *cache;
|
226
235
|
|
227
|
-
if ((error = git_tree_cache_new(&cache, "", pool)) < 0)
|
236
|
+
if ((error = git_tree_cache_new(&cache, "", oid_type, pool)) < 0)
|
228
237
|
return error;
|
229
238
|
|
230
239
|
if ((error = read_tree_recursive(cache, tree, pool)) < 0)
|
@@ -234,7 +243,7 @@ int git_tree_cache_read_tree(git_tree_cache **out, const git_tree *tree, git_poo
|
|
234
243
|
return 0;
|
235
244
|
}
|
236
245
|
|
237
|
-
int git_tree_cache_new(git_tree_cache **out, const char *name, git_pool *pool)
|
246
|
+
int git_tree_cache_new(git_tree_cache **out, const char *name, git_oid_t oid_type, git_pool *pool)
|
238
247
|
{
|
239
248
|
size_t name_len, alloc_size;
|
240
249
|
git_tree_cache *tree;
|
@@ -248,6 +257,7 @@ int git_tree_cache_new(git_tree_cache **out, const char *name, git_pool *pool)
|
|
248
257
|
|
249
258
|
memset(tree, 0x0, sizeof(git_tree_cache));
|
250
259
|
/* NUL-terminated tree name */
|
260
|
+
tree->oid_type = oid_type;
|
251
261
|
tree->namelen = name_len;
|
252
262
|
memcpy(tree->name, name, name_len);
|
253
263
|
tree->name[name_len] = '\0';
|
@@ -256,22 +266,22 @@ int git_tree_cache_new(git_tree_cache **out, const char *name, git_pool *pool)
|
|
256
266
|
return 0;
|
257
267
|
}
|
258
268
|
|
259
|
-
static void write_tree(
|
269
|
+
static void write_tree(git_str *out, git_tree_cache *tree)
|
260
270
|
{
|
261
271
|
size_t i;
|
262
272
|
|
263
|
-
|
273
|
+
git_str_printf(out, "%s%c%"PRIdZ" %"PRIuZ"\n", tree->name, 0, tree->entry_count, tree->children_count);
|
264
274
|
|
265
275
|
if (tree->entry_count != -1)
|
266
|
-
|
276
|
+
git_str_put(out, (char *)&tree->oid.id, git_oid_size(tree->oid_type));
|
267
277
|
|
268
278
|
for (i = 0; i < tree->children_count; i++)
|
269
279
|
write_tree(out, tree->children[i]);
|
270
280
|
}
|
271
281
|
|
272
|
-
int git_tree_cache_write(
|
282
|
+
int git_tree_cache_write(git_str *out, git_tree_cache *tree)
|
273
283
|
{
|
274
284
|
write_tree(out, tree);
|
275
285
|
|
276
|
-
return
|
286
|
+
return git_str_oom(out) ? -1 : 0;
|
277
287
|
}
|
@@ -11,28 +11,30 @@
|
|
11
11
|
#include "common.h"
|
12
12
|
|
13
13
|
#include "pool.h"
|
14
|
-
#include "
|
14
|
+
#include "str.h"
|
15
15
|
#include "git2/oid.h"
|
16
16
|
|
17
17
|
typedef struct git_tree_cache {
|
18
18
|
struct git_tree_cache **children;
|
19
19
|
size_t children_count;
|
20
20
|
|
21
|
+
git_oid_t oid_type;
|
22
|
+
|
21
23
|
ssize_t entry_count;
|
22
24
|
git_oid oid;
|
23
25
|
size_t namelen;
|
24
26
|
char name[GIT_FLEX_ARRAY];
|
25
27
|
} git_tree_cache;
|
26
28
|
|
27
|
-
int git_tree_cache_write(
|
28
|
-
int git_tree_cache_read(git_tree_cache **tree, const char *buffer, size_t buffer_size, git_pool *pool);
|
29
|
+
int git_tree_cache_write(git_str *out, git_tree_cache *tree);
|
30
|
+
int git_tree_cache_read(git_tree_cache **tree, const char *buffer, size_t buffer_size, git_oid_t oid_type, git_pool *pool);
|
29
31
|
void git_tree_cache_invalidate_path(git_tree_cache *tree, const char *path);
|
30
32
|
const git_tree_cache *git_tree_cache_get(const git_tree_cache *tree, const char *path);
|
31
|
-
int git_tree_cache_new(git_tree_cache **out, const char *name, git_pool *pool);
|
33
|
+
int git_tree_cache_new(git_tree_cache **out, const char *name, git_oid_t oid_type, git_pool *pool);
|
32
34
|
/**
|
33
35
|
* Read a tree as the root of the tree cache (like for `git read-tree`)
|
34
36
|
*/
|
35
|
-
int git_tree_cache_read_tree(git_tree_cache **out, const git_tree *tree, git_pool *pool);
|
37
|
+
int git_tree_cache_read_tree(git_tree_cache **out, const git_tree *tree, git_oid_t oid_type, git_pool *pool);
|
36
38
|
void git_tree_cache_free(git_tree_cache *tree);
|
37
39
|
|
38
40
|
#endif
|